2011-03-21 63 views
0

我最近更新一個項目,我的解決方案使用MVC 3,而不是MVC 2問題使用aspnet_compiler編譯一個新的ASP.NET MVC 3項目

於是乎這樣做,雖然它在我的機器上編譯,我在服務器中收到以下錯誤:

/MyProject.csproj/global.asax (1,0): 

    errorASPPARSE: Could not load type 'MyNamespace.MvcApplication'. 

任何想法?

  • 它在我的機器上編譯和工作正常。
  • 它編譯在服務器,如果我打開它在VS.NET 2010.
  • 它通過msbuild在服務器編譯。

UPDATE: 失敗具體的命令是這樣的:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /MyProject.csproj -p c:\cruisecontrol\trunk.project\checkout\Solution\Project -u -f .\TempBuildDir\ 

如果我打開服務器的VS.NET 2010,一旦手動編譯,命令然後運行正常。

問題是,我的CC.NET刪除了所有東西,然後從頭開始從源代碼控制中檢查出來,所以這種方法對我來說不起作用。雖然它很有趣,因爲它很奇怪。

更新2: 我能夠在本地重現這一點,所以它不是特別在CC.NET服務器中的問題。
有人可以嘗試重現嗎?

使用剃鬚刀的MVC 3應用程序(儘管我懷疑它會有所作爲),在其上運行aspnet_compiler,並查看它是否因此錯誤而失敗。只要創建解決方案和項目,就儘快關閉VS.NET。

enter image description here

,如果我使用Visual Studio

編譯它至少一次,如果有人還跟試試這不會發生,我可以在我測試了2臺機器排除問題。

+1

嘗試把MVC Dlls System.Web.Mvc等放在您的Web應用程序的bin文件夾中....也許它不能從GAC加載它們 – 2011-03-21 16:14:03

+0

@Varun,我會試試,但如果這是問題,msbuild編譯也不會失敗嗎? – juan 2011-03-21 17:31:11

+0

我以前遇到類似的問題,並且添加了DLL幫助,所以我想也許你正面臨着這樣的問題....一旦你弄明白了,就在這裏發佈答案:-) – 2011-03-21 19:27:33

回答

0

顯然,aspnet_compiler.exe需要存在/ bin目錄,這就是爲什麼使用vs.net構建它一次使用aspnet_compiler.exe修復連續編譯的原因。

我不知道爲什麼從MVC 2改變我的應用程序來MVC 3在此之前的工作,但我固定它通過在.wdproj文件

更改屬性從

<SourceWebPhysicalPath>..\..\Project\</SourceWebPhysicalPath>

爲了

<SourceWebPhysicalPath>..\..\Project\bin</SourceWebPhysicalPath>

Source