Как создать несколько ресурсов (dll) для одного проекта с msbuild, зависит от значения констант? - PullRequest
2 голосов
/ 05 февраля 2020

У меня Visual Studio 2019.

Я знаю, что мы можем построить один проект с несколькими конфигурациями и иметь dll для каждой конфигурации, например, у нас может быть одна dll для конфигурации Debug нашего проекта, и мы можем есть одна dll для конфигурации выпуска нашего проекта.

Но мой вопрос заключается в том, как создать несколько dll для одного проекта на основе DefineConstants, например, одну dll, когда у нас <DefineConstants>ML_HOOSHANG</DefineConstants> и есть другая dll для этого проект без определения этой константы?

Еще один вопрос - как упаковать этот проект с удержанием всех этих dll в соответствии с определением наших определяемых констант?

Еще один вопрос, могу ли я вызвать Visual Studio (msbuild) ) генерировать все dll для каждого запроса на сборку?

Является ли UsingTask полезным для этой цели? или нет?

Есть ли в любом случае изменить DefineConstants за UsingTask?

1 Ответ

2 голосов
/ 05 февраля 2020

Как создать несколько ресурсов (dll) для одного проекта с msbuild, зависит от значения констант?

Вы можете получить некоторую подсказку от этой проблемы . Пакетная сборка в VS2019 может помочь в вашей проблеме.

Возможное направление:

  1. Создайте один новый проект с именем TestBatchBuild. Щелкните правой кнопкой мыши Solution=>Configuration Manager и создайте новую конфигурацию проекта NewDebug и NewRelease. (Скопируйте настройки из Debug и Release)

enter image description here

Теперь щелкните правой кнопкой мыши решение => batch build мы видим:

enter image description here

Тогда давайте отредактируем файл проекта (xx.csproj), и мы найдем четыре PropertyGroup. Добавьте <DefineConstants>ML_HOOSHANG</DefineConstants> к NewDebug и NewRelease PropertyGroup и Сохранить ВСЕ .

Теперь строительство с NewDebug равно строительству с Debug+DefineConstants. И здание с NewRelease равно строению с Release+DefineConstants. Теперь давайте go страница пакетной сборки, мы можем собрать четыре сборки одновременно. (Debug + nodef ..., Debug + def ..., Release + nodef ..., Release + def ...). Надеюсь, что все выше помогает.

...