Visual Studio 扩展构建失败,出现错误 VSSDK1077:无法找到扩展目录。 "值不能为空

Visual Studio Extension build failing with Error VSSDK1077: Unable to locate the extensions directory. "Value cannot be null

我已经配置了一个 TFS(2017) 构建管道来编译一个带有调试模式的 VS 扩展,以满足需要 .pdb 文件的特定要求。 "debug" 配置的构建解决方案任务失败并出现以下错误,但相同的管道适用于发布配置。 我也尝试了下面讨论中提到的方法,但是它没有解决我的问题。

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

如果有人能帮我解决这个问题,我将不胜感激。

以下是用于构建解决方案任务的构建配置:

以下构建变量用于配置构建参数。

构建错误信息:

packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\VSSDK\Microsoft.VsSDK.targets (633, 5) packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\VSSDK\Microsoft.VsSDK.targets(633,5): Error VSSDK1077: Unable to locate the extensions directory. "Value cannot be null. Parameter name: path1". Process 'msbuild.exe' exited with code '1'.

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

    true

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