我已经阅读了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中。
是否有答案?
答案 0 :(得分:1)
多亏了confirmed problem在nuget打包工作流程中,我才找到了解决方法:
附加此:
<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,我为其构建了扩展程序: