Почему переменная окружения BUILD_NUMBER мешает ссылкам .NET во время сборки? - PullRequest
0 голосов
/ 07 июня 2018

Я вызываю MSBuild из командной строки:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" /t:clean,build /p:configuration="Release" /p:platform="Any CPU" MySolution.sln 

Решение содержит несколько проектов и ссылок на пакеты nuget.Например, Project1 ссылается на log4net через nuget.Ссылки Project2 Project1.

Ссылки настроены как локальные копии, и в результате я получаю DLL log4net в папке bin Project1, а также в папке bin Project2.

Однако, когда я запускаюсборка от Jenkins Я всегда пропускаю вторичные ссылки, то есть в папке bin Project2 я нахожу DLL-файл Project1, но не log4net - хотя log4net присутствует в папке bin Project1.

Мне удалось отследить причину досуществование переменной окружения BUILD_NUMBER (например, 10), которая автоматически устанавливается Jenkins.Я проверил в окне консоли: если оно есть, проблема выглядит так, как описано.Если его там нет, все библиотеки DLL находятся там, где я их ожидаю.

Как я могу продолжить?Любые предложения приветствуются!

Заранее спасибо!

Рейнхард

1 Ответ

0 голосов
/ 07 июня 2018

Извините за беспокойство, я сам вызвал проблему, именно так:

Я создал обработчик событий после сборки для Project1, который выполнял некоторую двоичную защиту только тогда, когда была установлена ​​переменная среды BUILD_NUMBER.Как только это было сделано, MSBuild не удалось выполнить шаг ResolveAssemblyReferences для Project1, так как он не смог обнаружить ссылки в защищенной сборке.

Извлеченный урок;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...