使用MSBuild命令行执行Visual Studio 2010解决方案时,引用VS2010 SDK构建扩展失败

3

场景

  • 解决方案中包含一个VS2010扩展(.NET 4类库,带有WPF UI)
  • 在Visual Studio中可以正常构建
  • 同一台机器上,当我尝试通过命令行构建它时(作为构建脚本的一部分)
  • 使用以下命令尝试构建时失败
    • msbuild JsExt.sln /t:Build /p:Configuration=Debug /p:OutDir=..\..\Binaries
  • 更新
    • MSBuild添加/property:VsSDKInstall="C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK"会导致此异常...

异常

"VSCTCompiler"任务意外失败。 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.Common.targets(74,5): error MSB4018: System.ArgumentNullException: Value cannot be null.

额外信息

  1. 已安装Visual Studio 2010 SDK SP1
  2. 文件路径和Microsoft.VsSDK.Common.targets确实存在。
  3. 我正在运行x86控制台和PowerShell窗口,并加载了vcvarsall.bat(x86)
  4. 我不确定tmp_proj是什么。
  5. 这是一个WPF用户界面,是否缺少编译WPF / XAML的东西通过MSBuild?
  6. CSProj文件中没有任何预/后构建事件,这是扩展。
  7. 构建平台目标为Any CPU
  8. 我有其他解决方案/项目可以使用相同的MSBuild命令正常工作。
  9. 设置/v:diag并没有提供更多关于错误的信息。

有什么想法,我漏掉了什么,下一步该如何调试?


你的构建脚本中是否调用了以下命令:'"C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86'? - DaveShaw
@DaveShaw 是的,它们已经被加载了,在执行构建命令之前明确运行进行了确认,但仍然出现相同的异常。 - Nick Josevski
抱歉,那是我唯一的想法。 - DaveShaw
1个回答

2
VSSDKInstall环境变量是否设置/在您的控制台中显示?
VSSDK100Install=C:\Program Files (x86)\Microsoft Visual Studio 2010 SDK SP1\

如果是这样,请在您的cmd命令行中添加“/v:diag”以查看其内容。
请查看以下博客文章-第3步听起来像您最初的问题,第4步解释了随后遇到的VSCTCompiler问题。

这不是问题,我通过msbuild命令变量提供它,我会更新问题,因为现在出现了另一个错误 - “VSCTCompiler”任务意外失败。 - Nick Josevski
显然,某些 VSSDK 任务仍然需要设置 VsSDKInstall 路径作为环境变量。 - Sean Holm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接