включить файл для каждой целевой платформы в nuget
У меня есть проект (в стиле SDK) с несколькими целевыми платформами:
<PropertyGroup>
<TargetFrameworks>net48;netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
</PropertyGroup>
Когда я его создаю, файл создается для каждой целевой платформы. Я хочу включить эти
pdb
файлы в nuget рядом с их соответствующими
dll
(так, в
\lib\targetFramework\
).
Я могу сделать это для одной конкретной структуры:
<ItemGroup>
<Content Include="bin\$(Configuration)\net48\*.pdb" Pack="true" PackagePath="lib\net48" />
</ItemGroup>
Как я могу указать это для всех без жесткого кодирования?
Я могу сделать это в общем, если у меня есть коллекция всех
TargetFrameworks
преобразованы определенным образом:
<ItemGroup>
<!-- hard-coded collection -->
<PDBFile Include="bin\$(Configuration)\net48\$(AssemblyName).pdb">
<NugetFramework>net48</NugetFramework>
</PDBFile>
<PDBFile Include="bin\$(Configuration)\netcoreapp3.1\$(AssemblyName).pdb">
<NugetFramework>netcoreapp3.1</NugetFramework>
</PDBFile>
<PDBFile Include="bin\$(Configuration)\net5.0-windows\$(AssemblyName).pdb">
<NugetFramework>net5.0-windows7.0</NugetFramework>
</PDBFile>
<PDBFile Include="bin\$(Configuration)\net6.0-windows\$(AssemblyName).pdb">
<NugetFramework>net6.0-windows7.0</NugetFramework>
</PDBFile>
<!-- generic usage of the collection -->
<Content Include="@(PDBFile)" Pack="true" PackagePath="lib\%(NugetFramework)"/>
</ItemGroup>
Но я до сих пор не знаю, как определить
PDBFile
сбор в менее жестко запрограммированном виде...