Visual Studio 2010"发布"不会复制Razor视图文件

Por*_*man 19 asp.net-mvc visual-studio-2010 visual-studio razor

将Visual Studio 2010的内置发布功能与包含Razor视图(.cshtml或.vbhtml)的Web应用程序一起使用时,发布服务不会复制Razor视图文件.

使用11月9日发布候选版本,在本地"文件系统"发布以及使用Web Deploy进行远程发布时都会发生这种情况.

有没有已知的解决方法?

Ted*_*lou 34

您需要将构建操作设置为属性下的"内容".

编辑:您必须对未复制的每个文件执行此操作.

编辑2:我做了一些调整,发现在msdn上发布了一个论坛,听起来你可以编辑注册表,或者创建一个pkdef文件.

http://social.msdn.microsoft.com/Forums/en/vsxprerelease/thread/c0212d15-96c4-455d-b7e1-d299c5ef384a

  • MVC 3 RC似乎解决了这个特殊问题. (2认同)

Jon*_*ved 9

(这个答案主要是因为有人通过谷歌等发现这个)

正如@Ted Ballou指出你需要将输出类型更改为Content.如果您像我一样在不同的子文件夹中有100多个文件,这可能会非常麻烦.

特别是如果选择中包含文件夹,则无法一次更新多个文件.

打开项目文件并直接修改设置,而不是通过GUI更改.

YourProject.csproj更改项目中:

<None Include="Views\Foo\Bar.cshtml />

<Content Include="Views\Foo\Bar.cshtml" />
Run Code Online (Sandbox Code Playgroud)

我使用以下正则表达式替换所有文件:

搜索: <None Include="(.+)\.cshtml" />

用...来代替: <Content Include="$1.cshtml" />

现在,Visual Studio应将所有已更改的cshtml视为Content发布.