有没有办法从“预编译”选项中排除某些 .cshtm 文件或整个文件夹,以便 .cshtml 文件可以在 MVC 之外使用?

Bre*_*ent 6 visual-studio-2013

我正在使用HangfirePostal从页面周期异步发送电子邮件(在 MVC 5 应用程序中)。创建电子邮件的线程使用RazorEngine项目。

Visual Studio 2013 (express) 项目设置为“发布期间预编译”,“允许预编译站点可更新”设置为 false。这具有显着的优势,因为我使用的是共享 Web 主机,并且无法更改应用程序池回收时间(20 分钟)。如果 20 分钟内未访问该站点,则该站点对请求的响应速度会明显加快。

但是,发布的网站具有用于电子邮件模板的“自动生成标记”.cshtml 文件(即使复制到输出目录设置为始终复制),并且(非 MVC)线程只有在我复制每次发布后,手动将 Visual Studio 项目中的 Views/Email 文件夹放入发布文件夹中。

有没有办法从“预编译”选项中排除某些 .cshtm 文件或整个文件夹,以便 .cshtml 文件可以在 MVC 之外使用。谢谢。

juF*_*uFo -1

[项目] > [属性] > [PublishProfiles] > [your.pubxml]

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
 ...
    <ExcludeFilesFromDeployment>
      somefolder\otherfolder\*.cshtml;folder2\*.cshtml;foo.cshtml
    </ExcludeFilesFromDeployment>
    <ExludeFoldersFromDeployment>
      foo\bar;Views
    </ExludeFoldersFromDeployment>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

不知道这是否有帮助,但是您可以通过发布配置文件 (.pubxml) 排除文件/文件夹吗?更多信息:https://msdn.microsoft.com/en-us/library/ee942158 (v=vs.110).aspx