使用多目标时 C# 输出文件名中的目标框架

Target framework in output file name from C# when using multi targets

当我编译 C# 应用程序时,输出的文件名是 ProjectName.dll。 但是如果我想要文件名是 ProjectName.net46.dll?

怎么办

编辑

我希望输出为 ProjectName.net46.dllProjectName.net40.dll 如果我使用<TargetFrameworks>net46;net40</TargetFrameworks>

经过一番调查,我找到了this line。基于此,解决方案原来如此简单:

  <PropertyGroup>
    <TargetFrameworks>net4.0;net4.6</TargetFrameworks>
    <AssemblyName>$(MSBuildProjectName).$(TargetFramework)</AssemblyName>
  </PropertyGroup>

使用此解决方案,*.exe、*.dll 和 *.pdb 文件都将获得新名称。而且这个解决方案还可以进行调试和单元测试。