當將Visual Studio 2010的內置發佈功能與包含Razor視圖(.cshtml或.vbhtml),的Web應用程序一起使用時,發佈服務不會複製剃刀視圖文件。Visual Studio 2010「發佈」不復制剃鬚刀視圖文件
這都發生在本地「文件系統」發佈以及遠程發佈使用Web部署,使用November 9 Release Candidate。
是否有任何已知的解決方法?
當將Visual Studio 2010的內置發佈功能與包含Razor視圖(.cshtml或.vbhtml),的Web應用程序一起使用時,發佈服務不會複製剃刀視圖文件。Visual Studio 2010「發佈」不復制剃鬚刀視圖文件
這都發生在本地「文件系統」發佈以及遠程發佈使用Web部署,使用November 9 Release Candidate。
是否有任何已知的解決方法?
您需要設置生成操作到「內容」下的性能。
編輯:你必須這樣做,對每一個不被複制的文件。
編輯2:我做了一些閒逛,發現一個論壇在MSDN發佈了,聽起來像是你可以編輯註冊表,或創建一個pkdef文件。
http://social.msdn.microsoft.com/Forums/en/vsxprerelease/thread/c0212d15-96c4-455d-b7e1-d299c5ef384a
+1這是一個「已知的解決方法」,但通過golly我希望它不是唯一的! – Portman 2010-11-10 18:21:51
MVC 3 RC似乎已經解決了這個特殊問題。 – Buildstarted 2010-11-10 18:30:07
是的,這實際上是用ASP.NET MVC 3 RC修復的,因爲現在有了對Razor的完整Visual Studio支持。 – Eilon 2010-11-13 03:10:28
(這個答案多半是,如果有人發現這個通過谷歌等)
由於@Ted巴羅指出,你需要輸出類型更改爲內容。如果你像我一樣,在不同的子文件夾中有超過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
。
項目項目的「Build Action」屬性是相關的。嘗試「內容」,以便IDE知道它是需要部署的項目。 – 2010-11-10 16:52:01