某些 Razor 视图未发布

Certain Razor views not publishing

将 VS 2017 与 MVC 5 Razor 视图结合使用。当我发布我的应用程序时,一些特定的视图没有被复制。

我在 2010-2011 年的时间范围内发现了几个关于同一问题的 SE 问题。当时,问题是文件属性中的 Build Action 未设置为 Content,这是由于某些早期 RC 中的错误已得到解决。好吧,我的所有人都已经 完成了 天的构建操作内容。

只有少数浏览量没有发布的原因是什么?

据我所知,只有两种情况会导致这种情况发生。

  1. 正如您在问题中所说,每个视图的构建操作需要设置为 "Content"
  2. 视图文件需要包含在项目文件中,所以在.csproj文件中应该有这样一行:

    <Content Include="Views\ControllerName\Index.cshtml" />
    

另一种方法是在您的 csproje 文件中进行设置。这在我的中丢失了,这导致它在我的发布中制作了 precompiledviews.dll

<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>

明确地将其设置为 false 以发布 .cshtml 文件。

根据 Visual Studio 的版本,先排除再包含部分视图或其文件夹可能有效,也可能无效。最确定的方法是将其从 .csproj 文件中删除,然后再次包含它。

假设 _LoginPartial 发布后未更新(特别是如果您有一些剃须刀代码)。

首先打开“.csproj”文件,然后删除

<Content Include="Views\Shared\_LoginPartial.cshtml" />

构建项目,然后再次添加到.csproj,重建并发布。

Visual Studio -> 在解决方案资源管理器中右键单击 "Views"。单击 "Publish Views"。这会将所有视图设置为 Content

来自 Visual Studio

的另一个解决方案
  1. 右键单击该文件并选择“从项目中排除”。
  2. select 项目并单击“解决方案浏览”(解决方案浏览顶部水平菜单栏)中的“显示所有文件
  3. 右键单击已排除的文件并单击“包含在项目中”。

这将自动修改 .csproj 文件。