Восстановление msbuild с явной конфигурацией сборкиC#

Место общения программистов C#
Ответить
Anonymous
 Восстановление msbuild с явной конфигурацией сборки

Сообщение Anonymous »

У нас есть решение VS2022 C# .net8 с некоторыми проектами, которые необходимо скомпилировать с использованием двух разных версий пакета nuget (npgsql). Мы решили эту проблему, определив специальную переменную сборки (OLD_NPGSQL) в специальной конфигурации сборки. Файлы проекта имеют

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




4.0.17






8.0.4




Тег, который переключает версию пакета в зависимости от того, определена или нет переменная сборки OLD_NPGSQL.
В IDE каждый Buildkonfig компилируется как очарование. В Solutionexplorer я вижу переключение версий пакета в зависимости от конфигурации сборки.
Проблема заключается в сборке из командной строки. Я читал, что мне нужно вызвать предыдущую сборку целевого восстановления, чтобы msbuild мог обновить ссылки на пакеты.
Но msbuild /target:Restore, похоже, игнорирует /p :Configuration= переключатель. Кажется, он всегда использует стандартную конфигурацию сборки (то есть Debug). Таким образом, после восстановления только сборка без переменной сборки работает нормально. Когда я использую специальную конфигурацию сборки, я получаю ошибки сборки из-за неправильной версии npgsql.dll.
Когда я выбираю специальную конфигурацию сборки в IDE, НЕ запускаю восстановление из командной строки, а только сборка командной строки со специальным buildconfig, он компилируется.
Поэтому мне хотелось бы знать: какую команду вызывает IDE, если я переключаю buildconfig.
Я вижу в выводе менеджера пакетов что-то вроде этого:

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

    Restoring NuGet packages...
Running restore with 12 concurrent jobs.
Reading project file C:\Users\name\source\repos\abc\def\Views\Views.csproj.
etc.
(Многословие уже является «диагностическим».)
Это не то же самое, что msbuild /target:Restore. >
Или, возможно, мне придется переключить стандартную конфигурацию сборки перед msbuild /target:Restore. Но как это сделать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... figuration
Ответить

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

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

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

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

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