0

我有一个包含多个目标框架的项目(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较少硬编码的方式定义集合......

4

0 回答 0