Использование новой Buildsystem для создания нескольких «Конфигураций» одновременно - PullRequest
0 голосов
/ 01 июля 2018

Если у меня есть проект, который строится на основе разных целевых фреймворков, я могу указать TargetFrameworks вместо TargetFramework, и MSBuild создаст все фреймворки в одной сборке без изменения конфигурации.

У меня есть проект, который будет скомпилирован с различными платформами (например, WPF и Windows Forms) с использованием некоторого #if. Я хотел бы определить массив значений, таких как <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 голосов
/ 01 июля 2018

На данный момент это невозможно.

Единственная поддерживаемая в настоящее время ось с несколькими целями - это несколько целевых структур. Важно, чтобы все значения в TargetFrameworks были доступны для анализа известных моникеров целевой структуры NuGet (TFM), чтобы некоторые инструменты работали должным образом.

...