目前,我正与TeamCity一起努力实现ASP.NET MVC 3解决方案的两种构建配置。我的设置与http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_26.html的指导基本相同。当它在第一个“构建&测试”构建配置中构建.sln时,一切都很好。但是在"Package & Deploy“配置中,当我让MSBuild直接构建MyWebProject.csproj文件时,它似乎是解析对.NET 3.5程序集的核心.NET引用,而不是.NET 4.0程序集。
因此,我得到了所有类型的.NET 3.5编译错误,例如"{ get;set;}“属性需要主体,因为它们没有被标记为抽象。
此外,我之所以认为它正在获取v3.5程序集,是因为在TeamCity CoreCompile - Csc构建活动期间,它说
"Csc:\ Files\TeamCity\buildAgent\work\651adc4c97432014\packages\DataAnnotationsExtensions.1.0.2.0\lib\NETFramework40\DataAnnotationsExtensions.dll错误CS1705:程序'DataAnnotationsExtensions,Version=1.0.2.0,Culture=neutral,PublicKeyToken=358a5681c50fd84c‘使用System.ComponentModel.DataAnnotations,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,它的版本高于引用的程序集'System.ComponentModel.DataAnnotations,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'“。
现在,如果我在web项目的Version=4.0.0.0文件中显式地将版本设置为“.csproj”,那么它就开始在其他核心.NET程序集(如System.Core.dll)上给出类似的异常;也就是说,它一直试图解析对v3.5程序集的引用,而不是v4.0。有趣的是,我知道它使用的是v4.0的MSBuild,因为构建日志状态是“使用用户定义的MSBuild :MSBuild”我的命令行参数开始传递给MSBuild配置,如下所示:
/P:Configuration=%env.Configuration%
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:UserName=MyUsername
/P:Password=MyPassword我在构建服务器上完成了以下操作:*安装了"Microsoft 7和.NET Framework4“*安装了VS 2010 (希望避免这种情况)*安装的ASP.NET MVC 3*将evn.MSBuild集添加到%system.DotNetFramework4.0_x86_Path%。*将注册表项HKLM/SOFTWARE/Microsoft/.NETFramework/SDKInstallRootv2.0添加为"C:\Program \Microsoft\Windows\v7.1“。
谢谢你能提供的任何帮助!
比利McCafferty
发布于 2012-04-20 16:38:32
你要做的是确保在你构建这个项目的时候设置好一些东西.
我通常把它分成两个步骤
1)建立解决方案
在此步骤中,确保将visual studio版本设置为2010。

2)预构建Web在此步骤中调用命令构建web项目并生成可部署性,设置msbuild步骤的框架版本和适当的平台。将目标设置为"ResolveReferences;_CopyWebApplication“构建文件路径应该指向mvc应用程序的csproj文件。

最后一个必需的步骤是设置一些构建参数。
system.Configuration =>发布
system.OutputPath => C:\inetpub\wwwroot\foo\bin
system.WebProjectOutputDir => C:\inetpub\wwwroot\foo
发布于 2012-04-20 16:38:44
在MSBuild步骤配置页面中,您肯定将MSBuild版本和MSBuildTools版本设置为4.0?

https://stackoverflow.com/questions/10249302
复制相似问题