2011-03-21 77 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