【发布时间】:2017-10-04 19:01:40
【问题描述】:
我正在为 VS 2017 更新旧的 Visual Studio 扩展。它可以从 Visual Studio 和 msbuild 中正常编译,并在我的本地计算机上进行调试和发布。
这是我正在使用的 msbuild 命令行:
msbuild VxCop.sln /p:ToolsHome=C:\ProgramData\chocolatey\bin /p:Configuration=Release /p:Platform="Any CPU"
但是,在构建机器 (TFS Build 2010) 上使用相同的命令行调用 msbuild.exe 失败并显示 this error
为了解决这个问题,我尝试指定 VSToolsPath。我尝试了各种方法,例如更改 .csproj 中的 VSToolsPath 条目(似乎没有考虑到这样做没有效果),并将其传递到命令行:
msbuild VxCop.sln /p:ToolsHome=C:\ProgramData\chocolatey\bin /p:Configuration=Release /p:Platform="Any CPU" /p:VSToolsPath=Packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\
这会导致一个非常奇怪的错误:
CopyFilesToOutputDirectory:
Copying file from "obj\Release\SymCop.dll" to "bin\Release\SymCop.dll".
SymCop -> H:\src\tools\VisualStudioExtensions\Main\VxCop\source\SymCop\bin\Release\SymCop.dll
Copying file from "obj\Release\SymCop.pdb" to "bin\Release\SymCop.pdb".
Done Building Project "H:\src\tools\VisualStudioExtensions\Main\VxCop\source\SymCop\SymCop.csproj" (default targets).
Done Building Project "H:\src\tools\VisualStudioExtensions\Main\VxCop\VxCop.sln" (Build target(s)) -- FAILED.
Done Building Project "H:\src\tools\VisualStudioExtensions\Main\VxCop\build.proj" (default targets) -- FAILED.
Build FAILED.
0 Warning(s)
0 Error(s)
实际的扩展项目根本没有出现在日志中,也没有你知道的错误。但是构建返回失败,返回码非零,vsix 项目似乎没有构建(它的输出丢失)
希望有人给点建议
谢谢
编辑:
对于那些将来阅读本文的人来说,问题似乎是在同一个文件的更下方有一个<Import>,它并不关心我对$(VSToolsPath) 的更新。
更改导入修复它:
<Import Project="$(SolutionDir)\packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\VSSDK\Microsoft.VsSDK.targets"
/>
【问题讨论】:
标签: visual-studio msbuild visual-studio-2017 visual-studio-extensions