msbuild - Visual Studio 扩展构建失败并出现错误 VSSDK1077:无法找到扩展目录。"值不能为空
问题描述
我已经配置了一个 TFS(2017) 构建管道来编译具有调试模式的 VS 扩展,以满足需要 .pdb 文件的特定要求。“调试”配置的构建解决方案任务失败并出现以下错误,但是相同的管道适用于发布配置。我也尝试了以下讨论中提到的方法,但是它并不能解决我的问题。
感谢有人可以帮助我解决这个问题。
构建错误消息:
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):错误VSSDK1077:找不到扩展目录。“值不能为空。参数名称:path1”。进程“msbuild.exe”以代码“1”退出。
解决方案
- 将您的 Microsoft.VSSDK.BuildTools NuGet 包更新到最新版本 15.9.3032,以防万一问题已经解决。
- 发布配置还可以生成 PDB 文件(项目属性、构建选项卡、高级...按钮、输出 > 调试信息)。因此,如果发布配置适合您,您可以继续使用它,同时生成一个包含完整调试信息的 pdb 文件。
当正确编译生成的 VSIX 输出文件将部署到实验性 VS 实例的扩展文件夹时,就会发生错误,这是调试 VSIX 文件的必要步骤。对 Debug/Release 配置的不同行为的一种可能解释是,您的 .csproj 可能为 Release 配置指定了 <DeployExtension>False</DeployExtension>。默认情况下,如果未设置,该属性在 Microsoft.VsSDK.targets 文件中设置为 true:
<DeployExtension Condition="'$(DeployExtension)' == ''">true</DeployExtension>
由于在构建服务器上构建时可能不需要将 VSIX 部署到 VS 实验实例(因为您不打算对其进行调试),因此您可以将该属性设置为 False 以跳过部署。这可以通过第三个构建配置(例如:“DebugBuildServer”)来完成,您可以在 .csproj 文件中将 DeployExtension 指定为 False,或者坚持使用两个构建配置但在 MSBuild 参数中传递 /p:DeployExtension=false构建管道的 Visual Studio 构建任务。
推荐阅读
- typescript - TypeScript 将任何类型化数组转换为通用键值数组
- azure - Azure 分析服务部署通过
- r - 如何将函数应用于数据框中的所有列?
- c - _Generic 中的 C 条件表达式
- javascript - 反应测试:在测试中更改选择值
- ios - UIActivityViewController:如何从显示的活动中排除自己的共享扩展
- python - 用于启动 Visual Studio 并在其中运行 python 脚本的命令行语法
- airflow - 作曲家工作流在 dataproc 操作员处失败
- rest - OpenApi 3.x 在使用 Jersey 2.x 时只能生成服务器端代码是否仍然正确?
- python - keras 分类器错误评估而学习很棒