Msbuild 2010年Web部署项目的奇怪问题
我正在将CI配置升级到Web部署项目2010(从2008年起) 我在构建过程中遇到了一个非常奇怪的问题,如下所示-我已经研究了几个小时,但没有解决,我开始认为这个问题在别处…) C:\Program Files(x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(103,46):错误MSB4092:在条件“$(\u ExcludeWapBaseIntermediateOutput)”==”中的字符位置174处找到了“意外标记”)” 和!$([System.IO.Path]::IsPathRooted($(_ExcludeWAPBaseIntermediateOutputPath)))Msbuild 2010年Web部署项目的奇怪问题,msbuild,continuous-integration,web-deployment-project,Msbuild,Continuous Integration,Web Deployment Project,我正在将CI配置升级到Web部署项目2010(从2008年起) 我在构建过程中遇到了一个非常奇怪的问题,如下所示-我已经研究了几个小时,但没有解决,我开始认为这个问题在别处…) C:\Program Files(x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(103,46):错误MSB4092:在条件“$(\u ExcludeWapBaseIntermediateOutput)”==”中的字符位
突然,我认为您的CI服务器没有使用MSBuild运行生成,因此无法识别属性函数
$([System.IO.Path]::IsPathRooted(…)
检查MSBuild 4是否是您的CI服务器使用的版本。虽然我选择使用MSBuild 4版和MSBuild tools 4.0,但仍然失败-升级到TeamCity的最新版本后,所有问题都消失了:)我也面临着同样的问题。通过为MSBuild使用正确的工具版本(4.0)解决
<tasks>
<msbuild>
<executable>**C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe**</executable>
<workingDirectory></workingDirectory>
<projectFile></projectFile>
<buildArgs>/noconsolelogger </buildArgs>
<targets>RunFxcop</targets>
<logger>C:\Program Files\CruiseControl.NET\Server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
<timeout>3600</timeout>
</msbuild>
</tasks>
**C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe**
/noconsolelogger
RunFxcop
C:\Program Files\CruiseControl.NET\Server\ThoughtWorks.CruiseControl.MsBuild.dll
3600
如果使用Visual Studio命令提示符运行MSBuild,请确保它是“Visual Studio命令提示符(2010)”我在旧解决方案上使用了Nant,需要在Nant中设置Fx版本
<property name="nant.settings.currentframework" value="net-4.0" />
我认为这与我使用的teamcity的旧版本有关。我在问题和回答中指定我使用的是msbuild。我的意思是应该从相应的Visual Studio命令提示符运行msbuild。如果意外地运行VS 2008命令提示符而不是2010命令提示符,则会得到MSBUILD 3,并会出现奇怪的错误。