我有一個ASP MVC 4項目。它以MVC 1開頭,因此它使用舊式的ASPX/ASCX視圖。我想在編譯時編譯視圖,主要是爲了獲得編譯時錯誤檢查(並且重要的是讓錯誤直接在Visual Studio中顯示)。我正在使用IIS Express作爲調試服務器在Visual Studio Pro 2015中進行開發。在構建時嘗試構建ASP MVC視圖時出錯
按照雙方msdn,Haacked以及諸如this我已經設置了以下我.vbproj的問題在這裏:
<MvcBuildViews>true</MvcBuildViews>
並以我.vbproj創建任務
<Target Name="BuildViews" Condition="'$(MvcBuildViews)'=='true'" AfterTargets="Build">
<Message Importance="normal" Text="Precompiling views" />
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
然而,在嘗試構建時給我一個錯誤:
'/ temp'不是有效的IIS應用程序。
因爲它只是引用ASPNETCOMPILER
我已經嘗試過各種替代品VirtualPath文件 - 我已在項目配置爲作爲子目錄中開發/本地運行,所以我嘗試過,並從.vs文件夾中的配置站點名稱,沒有任何工作。
我應該改變VirtualPath(如果有的話是什麼),或者是有一些其他配置失蹤溫度工作?
編輯
而且,我得到運行一個命令行的MSBuild同樣的錯誤。對於我的實際生產系統,我有一個使用命令行MSBuild進行構建的腳本,然後將構建的包移動到產品服務器並部署。因此,它在構建時不會有任何IIS表示(或IIS運行)。你需要連接一個網絡服務器來編譯視圖嗎?
編輯2
我感到有必要在這裏virtulPath和Web服務器的連接顯然混淆。一些建議的解決方案涉及配置IIS。根據我的理解,IIS Express(我用於調試)甚至不必運行到之後成功構建?反正,我的應用程序的虛擬目錄中運行相當愉快(在調試模式/本地),但使用的是作爲一種價值不起作用。如果它的事項,這是在我的項目在.VS文件夾中對ApplicationHost.config的相關部分(我試圖把相同的路徑進入applciationhost.config在文件/ IIS快遞):
<site name="CarWeb-Site" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\adam.conway\Documents\My Web Sites\CarWeb-Site" />
</application>
<application path="/local" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="filesystem path to my project" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:57047:localhost" />
<binding protocol="http" bindingInformation="*:57047:*" />
</bindings>
</site>
所以我真的不明白爲什麼只有VirtualPath="/"
不起作用,因爲這是在這些配置中引用的虛擬路徑。
儘管我的主要目的是在Visual Studio中顯示視圖錯誤(並且我會接受一個限於此的答案),但我也爲在生產環境中使用MSBuild構建的機器進行構建,安裝IIS。
與到dotnet的過程寫訪問您的解決方案創建Temp目錄。在構建項目時,它創建temporaty文件,並根據錯誤無法找到臨時目錄/虛擬路徑。一旦發現它檢查寫訪問是否存在。希望這可以幫助! – Amit
@Amit:不起作用。試過了。 它不是要求一個虛擬路徑。即不知何故相對於網址?我嘗試使用'$(OutputPath)'作爲_VirtualPath_(它必須具有寫訪問權限,因爲這是創建.dll的地方),還有'$(IntermediateOutputPath)',並且得到相同的錯誤。 (嗯,路徑更改:_'/ bin /'不是有效的IIS應用程序._和_'/ obj/Debug /'不是有效的IIS應用程序._) – Adam
而不是IIS Express可以嘗試使用IIS看看它是否有效?檢查這個設置是否有助於IISExpress https://gist.github.com/paigecook/876258 – Amit