某些Razor观点没有发表

时间:2017-07-25 15:45:02

标签: asp.net-mvc razor asp.net-mvc-5 publish

使用VS 2017和MVC 5 Razor视图。当我发布我的应用程序时,一些特定的视图不会被复制。

我在2010-2011时间框架内发现了几个关于同一问题的SE问题。当时,问题是文件属性中的Build Action未设置为Content,因为某些早期RC已经解决了。好吧,我的所有人已经天内容构建行动。

为什么只有少数观点没有在发布中出现?

5 个答案:

答案 0 :(得分:8)

据我所知,只有两件事可以导致这种情况发生。

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

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

答案 1 :(得分:2)

另一种方法是在您的csproje文件中进行设置。这是我的遗漏,导致它在我的发布中产生了precompiledviews.dll

<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>

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

答案 2 :(得分:0)

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

让我们说_LoginPartial在发布后不会更新(特别是如果您有一些剃刀代码)。

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

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

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

答案 3 :(得分:0)

Visual Studio->右键单击解决方案资源管理器中的“视图”。点击“发布视图”。这会将所有视图设置为“内容”。

答案 4 :(得分:0)

来自 Visual Studio 的另一个解决方案

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

这将自动修改 .csproj 文件。