Я пытаюсь включить файлы PDB ссылок на проекты в пакет Nuget с помощью команды dotnet pack.
Я нашел решение включить файлы DLL, на которые ссылаются проекты, в пакет nuget. Это требует добавления некоторого кода в файл .csproj. Я также пытался заставить его работать с файлами .pdb, но это не работает.
Этот код копирует только файлы * .dll в nuget.
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))"/>
</ItemGroup>
</Target>
Это то, что я пробовал, но * .pdb файлы не видны в nuget.
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->Replace('.dll', '.pdb'))"/>
</ItemGroup>
</Target>
1012 * РЕШЕНИЕ *
У меня есть решение для копирования ссылочной PDB - просто добавьте следующие строки в ваш файл .csproj:
<Target Name="CopyPdbToPackage" Inputs="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" Outputs="%(ProjectReference.Identity)" AfterTargets="CopyProjectReferencesToPackage">
<PropertyGroup>
<CurrentReference>%(ProjectReference.Identity)</CurrentReference>
<CurrentReferenceName>$([System.IO.Path]::GetFileNameWithoutExtension($(CurrentReference)))</CurrentReferenceName>
</PropertyGroup>
<Message Text="Copying PDB of $(CurrentReferenceName) to packages..." Importance="high" Condition="'%(ProjectReference.NugetIgnore)'!='true'" />
<ItemGroup>
<AllItems Include="@(ReferenceCopyLocalPaths->WithMetadataValue('OriginalProjectReferenceItemSpec', '$(CurrentReference)'))" />
<PdbFiles Include="%(AllItems.Identity)" Condition="@(AllItems->EndsWith('.pdb'))=='true'" />
</ItemGroup>
<ItemGroup>
<TfmSpecificPackageFile Include="@(PdbFiles)" Condition="'%(ProjectReference.NugetIgnore)'!='true'">
<PackagePath>lib/$(TargetFramework)</PackagePath>
</TfmSpecificPackageFile>
</ItemGroup>
</Target>
Но есть одна проблема, PDB "основного" проекта nuget не копируется ...