asp.net-core - 在 netcore 2.0 Visual Studio 2017 中发布项目时不会复制 View

标签 asp.net-core asp.net-core-mvc visual-studio-2017 asp.net-core-2.0

我在 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 有一个 precompilation功能,可以通过引用 Microsoft.AspNetCore.Mvc.Razor.ViewCompilation 添加包裹。由 MvcRazorCompileOnPublish 配置的功能启用/禁用属性是 .csproj。

默认情况下,该包被添加到 ASP.NET Core 2.0 MVC 应用程序中:

If you're targeting ASP.NET Core 2.0 or higher on netcoreapp2.0, a reference to the Microsoft.AspNetCore.Mvc.Razor.ViewCompilation package is added by Microsoft.AspNetCore.All and you do not need to explicitly reference it.



precompilation is enabled :

The ASP.NET Core 2.x project templates implicitly set MvcRazorCompileOnPublish to true by default, which means this node can be safely removed from the .csproj file:

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


如果您转到发布输出文件夹,您将看到类似 <project_name>.PrecompiledViews.dll 的 dll。其中包含您的观点。

关于asp.net-core - 在 netcore 2.0 Visual Studio 2017 中发布项目时不会复制 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685159/

相关文章:

c# - 有没有办法为所有操作创建 CancellationToken 过滤器?

c# - LINQ包括搜索时降低性能

reactjs - 如何确保 React 父组件在其子组件挂载之前加载数据?

.net - 带有 ASP.NET Core 库的 Docker 容器

asp.net-mvc - 我必须附加到什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?

asp.net-core - Project Rider 不读取 launchSettings.json

asp.net - HttpContext 不包含 SignOutAsync 的定义

macos - 从 rc1-final 开始,ASP.NET 5 是否支持 Azure SQL?

c# - "Find Usages"和 "Find All References"之间的区别

Azure Function App 在发布后无法运行,但可以在本地通过 VS2017 运行