使用新的构建系统一次构建多个“配置”

时间:2018-06-30 22:50:35

标签: msbuild .net-standard csproj

如果我有一个针对不同目标框架构建的项目,则可以指定TargetFrameworks而不是TargetFramework,MSBuild将在不更改配置的情况下将所有框架构建为一个构建。

我有一个项目,将使用一些#if针对不同的框架(例如WPF和Windows Forms)进行编译。我想定义一个值数组,例如<usedFramework>Framework1;...;FrameworkN</usedFramework>,所以一个构建将同时构建所有变体。

我尝试将TargetFrameworks与新名称一起使用,然后在以后用正确的名称替换框架。但是VisualStudio不喜欢它。

<PropertyGroup>
  <TargetFrameworks>Framework1;Framework2</TargetFrameworks>
  <AssemblyName>PDFsharp</AssemblyName>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetFramework)'=='Framework1'">
  <TargetFramework>net20</TargetFramework>
  <useedFramework>Framework1</usedFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='Framework2">
  <TargetFramework>net20</TargetFramework>
  <useedFramework>Framework2</usedFramework>
</PropertyGroup>

然后再使用VisualStudio中的配置/平台下拉菜单吗?

1 个答案:

答案 0 :(得分:0)

目前,这不可能。

当前支持的唯一“多目标”轴是多个目标框架。重要的是,TargetFrameworks中的所有值都可以解析为已知的NuGet目标框架别名(TFM),以使某些工具正常工作。