Как включить ссылочные символы отладки nuget (PDB) в пакет .vsix - PullRequest
0 голосов
/ 29 июня 2018

Я прочитал Как включить символы отладки в пакет .vsix вопрос и ответ и пост Даниэля Каззулино , но они игнорируют тот факт, что в VSIX нужно включать PDB из других источники, такие как пакеты nuget.

Например: У меня есть проект VSIX, назовите его MyExtension.vsix. Он ссылается на пакет nuget, назовите его SomeNuget, который, в свою очередь, состоит из SomeNuget.dll и SomeNuget.pdb.

Я бы хотел включить этот SomeNuget.pdb в мой MyExtension.vsix.

Если есть ответ на этот вопрос?

1 Ответ

0 голосов
/ 29 июня 2018

Благодаря подтвержденной проблеме в процессе упаковки 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, я создаю расширения для:

  • 2010
  • 2015
  • 2017
...