Msbuild Visual Studio扩展生成失败,错误为VSSDK1077:无法找到扩展目录&引用;值不能为空

Msbuild Visual Studio扩展生成失败,错误为VSSDK1077:无法找到扩展目录&引用;值不能为空,msbuild,vsix,Msbuild,Vsix,我已经配置了一个TFS(2017)构建管道,用调试模式编译VS扩展,以满足需要.pdb文件的特定需求。 “调试”配置的生成解决方案任务失败,出现以下错误,但发布配置使用相同的管道。 我也尝试过下面讨论中提到的方法,但是它不能解决我的问题 如果有人能帮我解决这个问题,我将不胜感激 以下是用于生成解决方案任务的生成配置: 以下生成变量用于配置生成参数。 生成错误消息: 软件包\Microsoft.VSSDK.BuildTools.15.1.192\tools\VSSDK\Microsoft.V

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

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

以下是用于生成解决方案任务的生成配置:

以下生成变量用于配置生成参数。

生成错误消息:

软件包\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): 错误VSSDK1077:找不到扩展目录。“价值 不能为空。参数名称:path1”。进程“msbuild.exe”已退出 代码为“1”

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

    真的


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

    谢谢你的详细回答。添加“/p:DeployExtension=false”为我解决了错误。但是,即使启用调试模式,MsBuild也不会为扩展性项目发出.pdb。我试着打开解决方案是VS IDE,它也不会发出pdb。你能帮我一下吗?检查项目属性、构建选项卡、高级…按钮、输出>调试信息调试信息设置为完整,因此我查看了.csproj的xml并确定CopyOutputSymbolsToOutputDirectory=false。我将其更改为true并编译以查看pdb是否复制到bin文件夹中。感谢您在这方面的支持。我还注意到了这些configurationsTrueIt。您的.csproj在创建后似乎更改了一些默认属性值。您甚至希望在构建服务器上创建Vsix容器,因为它是构建过程的重要部分(它的最终输出)。因此,请将属性CreateVsixContainer保持为True。