Visual Studio Extension构建失败,并显示错误VSSDK1077:无法找到扩展目录。 “值不能为空

时间:2019-01-06 19:14:25

标签: msbuild vsix

我已配置了TFS(2017)构建管道以针对需要.pdb文件的特定要求编译具有调试模式的VS扩展。 对于具有以下错误的“调试”配置,构建解决方案任务失败,但是相同的管道可用于发行版配置。 我也尝试了以下讨论中提到的方法,但是它不能解决我的问题。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/fd220999-5761-475a-bf86-98dff6b35218/unable-to-compile-vsix-project-that-is-a-part-of-my-solution-using-amd64-msbuild-from-vs2015?forum=msbuild

感谢有人能帮助我解决此问题。

以下是用于“构建解决方案”任务的构建配置: enter image description here

以下构建变量用于配置构建参数。 enter image description here

生成错误消息:

  

packages \ Microsoft.VSSDK.BuildTools.15.1.192 \ tools \ VSSDK \ Microsoft.VsSDK.targets   (633,5)   包\ Microsoft.VSSDK.BuildTools.15.1.192 \ tools \ VSSDK \ Microsoft.VsSDK.targets(633,5):   错误VSSDK1077:无法找到扩展目录。 “值   不能为null。参数名称:path1“。进程'msbuild.exe'退出   代码为“ 1”。

1 个答案:

答案 0 :(得分:2)

  1. 将您的Microsoft.VSSDK.BuildTools NuGet软件包更新到最新版本15.9.3032,以防万一这是已经解决的问题。
  2. 发布配置还可以生成PDB文件(项目属性,“构建”选项卡,“高级...”按钮,“输出”>“调试”信息)。因此,如果Release配置适合您,则可以继续使用它,同时生成带有完整调试信息的pdb文件。
  3. 当正确编译后,将生成的VSIX输出文件部署到实验VS实例扩展名的文件夹中时,就会发生错误,这是调试VSIX文件的必需步骤。调试/发布配置的不同行为的一种可能解释是,您的.csproj可能为Release配置指定 False 。默认情况下,如果未设置,则在Microsoft.VsSDK.targets文件中将该属性设置为true:

由于在构建服务器上构建时可能不需要将VSIX部署到VS实验实例(因为不打算对其进行调试),因此可以将该属性设置为False来跳过部署。可以使用第三个构建配置(例如:“ DebugBuildServer”)来完成此操作,为此您可以在.csproj文件中将DeployExtension指定为False,或者坚持两个构建配置,但在以下参数的MSBuild参数中传递/ p:DeployExtension = false。构建管道的Visual Studio构建任务。