我有一个包含多个目标框架的项目(SDK 风格):
<PropertyGroup>
<TargetFrameworks>net48;netcoreapp3.1;net5.0-windows;net6.0-windows</TargetFrameworks>
</PropertyGroup>
当我构建它时,pdb
会为每个目标框架生成一个文件。我想将这些pdb
文件包含在它们对应的 nuget 旁边dll
(所以,在 中\lib\targetFramework\
)。
我能够为一个特定的框架做到这一点:
<ItemGroup>
<Content Include="bin\$(Configuration)\net48\*.pdb" Pack="true" PackagePath="lib\net48" />
</ItemGroup>
如何在TargetFrameworks
没有硬编码的情况下为所有人指定这个?
如果我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
较少硬编码的方式定义集合......