-2146232576错误MSBuild

-2146232576错误MSBuild,msbuild,Msbuild,我正在使用.Net v4.5在新的生成服务器上为ASP.Net MVC 5项目运行MSBuild,但遇到以下异常,我无法在其上找到任何资源 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(516, 5): error MSB6006: "aspnet_merge.exe" exited with

我正在使用.Net v4.5在新的生成服务器上为ASP.Net MVC 5项目运行MSBuild,但遇到以下异常,我无法在其上找到任何资源

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(516, 5):
error MSB6006: "aspnet_merge.exe" exited with code -2146232576
打开MSBuild的详细性,我得到以下结果

[MyApp.csproj.teamcity] AspNetMerge
[22:19:22][AspNetMerge] Using "AspNetMerge" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\..\Microsoft.Web.Publishing.Tasks.dll".
[22:19:22][AspNetMerge] AspNetMerge
[22:19:22][AspNetMerge] Running aspnet_merge.exe.
[22:19:22][AspNetMerge] C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\aspnet_merge.exe C:\TeamCity\buildAgent\work\9cfa4fd6593d694d\MyApp\obj\Release\AspnetCompileMerge\TempBuildDir -o MyApp.Merged -copyattrs obj\Release\AssemblyInfo\AssemblyInfo.dll -a  
[22:19:22][AspNetMerge] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(516, 5): error MSB6006: "aspnet_merge.exe" exited with code -2146232576.

在浏览了各种文章、网站和论坛之后,我仍然没有找到一个明确的答案。然而,它让我在构建服务器(包括.Net 2.0版)上安装了.Net Framework 3.5版,并将异常更改为更通用的asp_Net合并。然而,我并没有得到足够的信息来找出问题所在,我仍然觉得这与我最初的问题有关

[MyProject.csproj.teamcity] AspNetMerge (4s)
[18:46:36][AspNetMerge] Using "AspNetMerge" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\..\Microsoft.Web.Publishing.Tasks.dll".
[18:46:36][AspNetMerge] AspNetMerge (4s)
[18:46:36][AspNetMerge] Running aspnet_merge.exe.
[18:46:36][AspNetMerge] C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\aspnet_merge.exe C:\TeamCity\buildAgent\work\9cfa4fd6593d694d\MyProject\obj\Release\AspnetCompileMerge\TempBuildDir -o MyProject.Merged -copyattrs obj\Release\AssemblyInfo\AssemblyInfo.dll -a  
[18:46:36][AspNetMerge] Utility to merge precompiled ASP.NET assemblies. Version 3.5.30729.
[18:46:36][AspNetMerge] Copyright (c) Microsoft Corporation 2007. All rights reserved.
[18:46:36][AspNetMerge] 
[18:46:40][AspNetMerge] aspnet_merge error occurred: An error occurred when merging assemblies: Unresolved assembly reference not allowed: System.Web.
[18:46:40][AspNetMerge] The command exited with code 1.

经过反复试验(大量试验)后发现AspNetMerge路径不正确

文件位于:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets
有一节指向:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0\bin\
此后,我将.targets部分更改为:

<PropertyGroup>
  <AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
  <AspnetMergePath>C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\</AspnetMergePath>
</PropertyGroup>

aspnet_merge.exe
C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1工具\

现在一切都按计划进行了。

只是对已回答问题的补充

我们的案例:我们在构建服务器(Ccnet)上安装了4.5.1 sdk,该服务器已经在构建v4.0解决方案,并在sdk安装后停止

解决方案:将“C:\Program Files(x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets”中的路径更改为“C:\Program Files\Microsoft SDK\Windows\v7.1\Bin\NETFX 4.0 Tools\x64”


希望有帮助。

上面的信息很少。向msbuild.exe调用添加详细信息。msbuild.exe MySolution.sln/t:Rebuild/p:Configuration=Release/verbosity:detailed打开verbosity生成以下输出,在这些行之前还有很多内容,但这是显示错误的部分。谢谢你的帮助。你看过类似的帖子吗?我添加了更多的项目信息。遗憾的是,那篇文章没有帮助。在发布SO之前,我在谷歌上搜索了一下,找到了那篇文章。错误消息不同,它们正在使用.Net v2.0和旧的MSBuild