Одновременное создание нескольких конфигураций проекта C# с помощью переменных .csproj.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Одновременное создание нескольких конфигураций проекта C# с помощью переменных .csproj.

Сообщение Anonymous »

Представьте, что у вас есть математическая библиотека, которая предоставляет некоторые функциональные возможности, оптимизированные для типов чисел IEEE754. В коде может быть что-то вроде:

Код: Выделить всё

#if F16
global using Scalar = System.Half;
#elif F32
global using Scalar = System.Single;
#elif F32
global using Scalar = System.Double;
#endif

// ...
или

Код: Выделить всё

#if F32
public static float HighlyOptimizedMethod(float a, float b, float c) { ... };
#elif F64
public static double HighlyOptimizedMethod(double a, double b, double c) { ... };
#endif
Теперь я определяю эти константы препроцессора F16, F32, F64 в моем файле проекта .csproj следующим образом:

Код: Выделить всё





F64

$(DefineConstants);$(Scalar)


net8.0

mylibrary.$(Scalar)
mylibrary

...


Мой вопрос
Можно ли заставить VisualStudio/dotnet/MSBuild создавать сборки для всех трех конфигураций одновременно при сборке проекта? то есть можно ли запустить «компиляцию», а затем иметь следующий список файлов в каталоге bin/?
  • mylibrary.F16.dll
  • mylibrary.F32.dll
  • mylibrary.F64.dll
Я пробовал что-то вроде этого:

Код: Выделить всё






F64

$(DefineConstants);$(Scalar)







net8.0

...
Но это не сработало.
Может ли кто-нибудь помочь мне и/или указать правильное направление?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/788 ... roj-variab
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»