将Visual Studio 2010的内置发布功能与包含Razor视图(.cshtml或.vbhtml)的Web应用程序一起使用时,发布服务不会复制Razor视图文件。< / p>
使用November 9 Release Candidate在本地“文件系统”发布以及使用Web Deploy进行远程发布时都会发生这种情况。
是否有任何已知的解决方法?
答案 0 :(得分:34)
您需要将构建操作设置为属性下的“内容”。
编辑:您必须对未复制的每个文件执行此操作。
编辑2:我做了一些讨论,发现在msdn上发布了一个论坛,听起来你可以编辑注册表,或者创建一个pkdef文件。
http://social.msdn.microsoft.com/Forums/en/vsxprerelease/thread/c0212d15-96c4-455d-b7e1-d299c5ef384a
答案 1 :(得分:9)
(这个答案主要是因为有人通过谷歌等发现这个)
@Ted Ballou指出你需要将输出类型更改为Content。如果您像我一样在不同的子文件夹中有100多个文件,这可能会非常麻烦。
特别是如果选择中包含文件夹,则无法一次更新多个文件。
打开项目文件并直接修改设置,而不是通过GUI进行更改。
在YourProject.csproj
更改项目,例如:
<None Include="Views\Foo\Bar.cshtml />
到
<Content Include="Views\Foo\Bar.cshtml" />
我使用以下正则表达式替换所有文件:
搜索:<None Include="(.+)\.cshtml" />
替换为:<Content Include="$1.cshtml" />
现在,Visual Studio应将所有已更改的cshtml视为发布时的Content
。