Как передать параметры MSBuild в launchSettings.json?

#c# #asp.net #.net #msbuild

Вопрос:

У меня есть проект, который я построил, используя VS-код. Проект должен быть построен по-разному (с использованием #IF директив) в зависимости от переданного ему параметра MSBuild (допустим, имя параметра равно MyParameter ). Количество возможных значений или этот параметр конечны (скажем, 5). Я решил это в коде VS, имея 5 различных конфигураций (in launch.json ) и задачу сборки для каждой конфигурации (in tasks.json ), которая передавала бы соответствующее значение параметру MSBuild. У меня был один .csproj файл с этой строкой:

lt;DefineConstantsgt;$(DefineConstants);$(MyParameter)lt;/DefineConstantsgt;

Я попытался использовать VS 2022, и единственный способ сделать что-то подобное-это иметь несколько конфигураций решений. Я вижу, что VS использует launchSettings.json для своих профилей запуска. Есть ли способ передать параметры MSBuild в launchSettings.json профиле?

Комментарии:

1. Другие способы: запустите оболочку, установите MyParameter в качестве переменной среды, затем запустите VS из этой оболочки, и она будет использовать переменную среды. Или используйте directory.build.props. Или не делайте ничего из этого, вместо этого используйте сценарий оболочки и запустите 5 различных сборок оттуда, передавая /p:MyParameter=foo. Последнее имеет наибольший смысл лично для меня, но я, возможно, упускаю из виду, почему для вас важно иметь возможность легко переключать 5 различных конфигураций в VS.