Obecny system RC2 build wydaje się całkowicie zignorować folder Compiler/Preprocess
- możesz dosłownie umieścić w nim cokolwiek i nie wygeneruje żadnych błędów kompilacji. Dopóki Roslyn nie zostanie ponownie podłączony do prekompilacji, nie sądzę, że obecnie można sprawdzać pliki .cshtml na etapie budowy.
Jedyne obejście, jakie znalazłem, to pobranie Visual Studio do otwarcia każdego pliku .cshtml przy użyciu brudnych drobnych/zastępujących sztuczek i sprawdzenie kodu brzytwy przez silnik IntelliSense.
Aktualizacja
Patrząc na commit that removed razor precompilation, wydaje się, że cała sama RazorPreCompileModule
faktycznie usuwane, a won't be back for some time. Nawet jeśli ten kod został dodany z powrotem do projektu ręcznie, nie wygląda na to, że kompilacja dotnet uruchomi wszystkie moduły kompilujące.
Aktualizacja 2
Zobacz Kompilacja jest z powrotem w ASP.NET Rdzenia 1.1!
Aby ją włączyć, należy dodać następujące do project.json "zależności" Section:
"dependencies": {
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design": "1.1.0-preview4-final"
}
i dodaje do sekcji "Narzędzia":
"tools": {
"Microsoft.AspNetCore.Razor.Tools”: “1.1.0-preview4-final",
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools": "1.1.0-preview4-final"
}
i pod "skrypty" , dodaj polecenie brzytwa prekompilacji do "postpublish":
"scripts": {
"postpublish": [
"dotnet razor-precompile -configuration %publish:Configuration% -framework %publish:TargetFramework% -output-path %publish:OutputPath% %publish:ProjectPath%"
]
}
Update 3 - csproj
W końcu udało nam się przenieść do VS2017 i przeprowadzić migrację projektu do csproj. To oczywiście przerwała prekompilację maszynek do golenia, a chłopiec był królową, aby dowiedzieć się, jak to naprawić - official instructions are here.
Pierwsza czkawka, którą najprawdopodobniej trafisz, to zautomatyzowana migracja xproj/project.json -> csproj. Automatyczna migracja zakończy się niepowodzeniem, jeśli w sekcji project.json
znajduje się sekcja skryptu project.json
, więc należy całkowicie usunąć tę sekcję przed wykonaniem migracji.
Okazuje się, że nadal można uruchamiać skrypty publikowania, dodając <Target Name="PostPublishTarget" AfterTargets="Publish">...</Target>
do swojego, ale nie jest to już konieczne w przypadku prekompilacji maszynki.Więc bez zbędnych ceregieli, oto jak włączyć maszynki prekompilację w VS2017/csproj ziemi, kiedy już przeniesione projektu:
Dodaj prawidłowy pakiet widok kompilacja odniesienie do csproj. W <ItemGroup>
zawierającej wszystkie swoje projektu <PackageReference>
tagów dodać:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0" />
Dodaj właściwość MvcRazorCompileOnPublish do csproj. W sekcji <PropertyGroup>
zawierającego projekt <VersionPrefix>
, <TargetFramework>
etc, dodać:
<MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
I gotowe. System budowy będzie teraz uruchamiał prekompilację brzytwy przy każdym opublikowaniu projektu. Powinieneś zobaczyć coś jak Razor view compilation for myApp -> obj\Release\netcoreapp1.1\myApp.PrecompiledViews.dll
w pliku wyjściowym kompilacji podczas publikowania.
Jakieś pomysły, jak to zrobić teraz, gdy projekty ASP Core powróciły do formatu csproj? – AdamC
Wreszcie zaktualizowałem odpowiedź dla csproj :) – Ryan
@Ryan ten jest do publikacji. co z normalną budową/kompilacją? –