我想避免預編譯我的MVC .cshtml檔案
在發布ASP.NET Core 5.0網站時(不是Razor Views),它預先編譯了我的MVC .cshtml視圖。我想用正常的.cshml檔案代替dll檔案
我已經嘗試了以下方法,但它不作業。修改了專案檔案
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorCompileOnPublish> false</MvcRazorCompileOnPublish>
<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.1" />
</ItemGroup>
</Project>
修改后的startup.cs html
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation()。
}
誰能幫我解決這個問題呢?
CodePudding
根據這個Github問題,.csproj標志現在被稱為<RazorCompileOnPublish>,用于ASP.NET Core 3及以上版本:
屬性
MvcRazorCompileOnPublish被支持用于傳統目的[...],但我們建議使用<RazorCompileOnPublish>false</RazorCompileOnPublish>/code>代替。
uj5u.com熱心網友回復:
只要在你的.csproj中參考Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
。 <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.10" />
然后添加這兩行代碼
<CopyRazorGenerateFilesToPublishDirectory> true</CopyRazorGenerateFilesToPublishDirectory>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
最終你的cs檔案將看起來像這樣:
<Project Sdk="Microsoft.NET.Sdk.Web" >
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.10" />
</ItemGroup>
</Project>
并在你的啟動檔案中像這樣添加服務
services.AddControllersWithViews().AddRazorRuntimeCompilation()。
并且在發布之后,你可以看到檔案中的視圖和頁面檔案夾,并對其進行編輯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/311772.html
標籤:
