【问题标题】:How to include referenced nuget debugging symbols (PDBs) into .vsix package如何将引用的 nuget 调试符号 (PDB) 包含到 .vsix 包中
【发布时间】:2018-12-08 12:43:56
【问题描述】:

我已经阅读了How to include debugging symbols to .vsix package 问题和答案以及Daniel Cazzulino's post,但它们忽略了这样一个事实,即一个人的 VSIX 需要包含来自其他来源(如 nuget 包)的 PDB。

例如: 我有一个 VSIX 项目,将其命名为 MyExtension.vsix。它引用了一个 nuget 包,将其命名为 SomeNuget,而后者又由 SomeNuget.dll 和 SomeNuget.pdb 组成。

我想将 SomeNuget.pdb 包含到我的 MyExtension.vsix 中。

如果有答案?

【问题讨论】:

    标签: visual-studio visual-studio-2015 msbuild visual-studio-extensions vsix


    【解决方案1】:

    感谢 nuget 打包工作流程中的 confirmed problem,我找到了解决方法:

    附加这个:

      <PropertyGroup>
        <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>  
        <IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
        <IncludeDebugSymbolsInVSIXContainer>true</IncludeDebugSymbolsInVSIXContainer>
        <IncludeDebugSymbolsInLocalVSIXDeployment>true</IncludeDebugSymbolsInLocalVSIXDeployment>
      </PropertyGroup>
      <Target Name="_ResolveCopyLocalNuGetPackagePdbs" 
              Condition="$(CopyLocalLockFileAssemblies) == true" 
              AfterTargets="ResolveReferences"
              BeforeTargets="GetVsixSourceItems">
        <ItemGroup>
          <VSIXCopyLocalReferenceSourceItem 
            Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)%(Filename).pdb')" 
            Condition="Exists('%(RootDir)%(Directory)%(Filename).pdb')" />
        </ItemGroup>
      </Target>
    

    进入 vsix.csproj 文件即可达成交易。对我来说,这适用于我构建扩展的所有版本的 Visual Studio:

    • 2010
    • 2015
    • 2017
    • 2019
    • 2022

    【讨论】:

    • 感谢您在这里分享您的解决方案,您可以接受它作为答案。这可能对阅读此主题的其他社区成员有所帮助。
    • 也适用于 2022 年。
    猜你喜欢
    • 2013-10-01
    • 2015-05-08
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多