2010-11-10 89 views
17

當將Visual Studio 2010的內置發佈功能與包含Razor視圖(.cshtml或.vbhtml),的Web應用程序一起使用時,發佈服務不會複製剃刀視圖文件Visual Studio 2010「發佈」不復制剃鬚刀視圖文件

這都發生在本地「文件系統」發佈以及遠程發佈使用Web部署,使用November 9 Release Candidate

是否有任何已知的解決方法?

+3

項目項目的「Build Action」屬性是相關的。嘗試「內容」,以便IDE知道它是需要部署的項目。 – 2010-11-10 16:52:01

回答

33

您需要設置生成操作到「內容」下的性能。

編輯:你必須這樣做,對每一個不被複制的文件。

編輯2:我做了一些閒逛,發現一個論壇在MSDN發佈了,聽起來像是你可以編輯註冊表,或創建一個pkdef文件。

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

+0

+1這是一個「已知的解決方法」,但通過golly我希望它不是唯一的! – Portman 2010-11-10 18:21:51

+2

MVC 3 RC似乎已經解決了這個特殊問題。 – Buildstarted 2010-11-10 18:30:07

+0

是的,這實際上是用ASP.NET MVC 3 RC修復的,因爲現在有了對Razor的完整Visual Studio支持。 – Eilon 2010-11-13 03:10:28

7

(這個答案多半是,如果有人發現這個通過谷歌等)

由於@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