使用ASPNETCOMPILER:错误ASPRUNTIME:成员'FluentNHibernate.Cfg.FluentConfigurationException,FluentNHibernate没有解析类型

ili*_*ian 5 asp.net-mvc-3

我正在使用Team City进行持续集成,用于.Net 4 ASP MVC 3应用程序.

在我的开发机器上,我可以构建并运行我的应用程序,但在构建服务器上,我收到以下错误:

 ASPNETCOMPILER : error ASPRUNTIME: Type is not resolved for member 'FluentNHibernate.Cfg.FluentConfigurationException,FluentNHibernate, Version=1.2.0.712, Culture=neutral, PublicKeyToken=8aa435e3cb308880'
Run Code Online (Sandbox Code Playgroud)

FluentNHibernate程序集由项目引用,我甚至已将程序集添加到web.config程序集部分,但我仍然收到错误.

我该怎么做才能诊断出这个问题?

kel*_*oti 10

总结Rob White的评论,问题是某些代码正在运行WebActivator.PreApplicationStartMethod.解决方法是代码迁入Application_StartGlobal.asax.

WebActivator.PreApplicationStartMethod是一个用于在构建过程中极早加载代码的程序集属性.Phil Haack给出了很好的描述.该属性应该用于注册构建提供程序以及稍后在构建过程中使用的其他内容.因此,ASPNET编译器必须加载并运行此代码才能开始编译视图.

在我将一些代码添加到访问资源(MongoDB)的IoC(StructureMap)启动代码后,我在appharbor上遇到了这个特殊错误.由于appharbor构建机器无法访问此资源,因此它会抛出各种错误.

外卖是PreApplicationStartMethod用于预应用程序启动的事情,比如构建,而不是初始化应用程序.如果您正在进行应用程序初始化,请执行此操作Global.asax Application_Start.我知道MVC4的默认StructureMap NuGet包使用的是属性而不是Global.可能还有其他软件包会导致您犯同样的错误.