Asp.net-Core

在 netcore 2.0 Visual Studio 2017 中發布項目時未複製視圖

  • February 13, 2021

我在 VS 2017 中創建了一個 ASP.NET Core 2.0 項目。當我發布我的項目時,Views文件夾不存在,但wwwroot文件夾存在。

我可以在我的 .csproj 文件中設置以下內容:

<ItemGroup>                                                                            
  <Content Update="appsettings.json;web.config" CopyToOutputDirectory="PreserveNewest"/>
  <Content Update="Views\**\*" CopyToOutputDirectory="PreserveNewest" />
  <Content Update="wwwroot\**\*" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

但沒有用。

ASP.NET Core MVC 具有預編譯功能,可以通過引用Microsoft.AspNetCore.Mvc.Razor.ViewCompilation包來添加。屬性配置的功能啟用/禁用MvcRazorCompileOnPublish是 .csproj。

預設情況下,該包被添加到 ASP.NET Core 2.0 MVC 應用程序中:

如果您的目標是 netcoreapp2.0 上的 ASP.NET Core 2.0 或更高版本,則Microsoft.AspNetCore.Mvc.Razor.ViewCompilation包的引用由 Microsoft.AspNetCore.All 添加,您無需顯式引用它。

啟用預編譯

ASP.NET Core 2.x 項目模板MvcRazorCompileOnPublish預設隱式設置為 true,這意味著可以從 .csproj 文件中安全地刪除此節點:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
  </PropertyGroup>

如果你去發布輸出文件夾,你會看到<project_name>.PrecompiledViews.dll包含你的視圖的 dll。

引用自:https://stackoverflow.com/questions/46685159