Подтвердить что ты не робот

Что вызывает "Не удается разрешить ошибку зависимостей" от MsBuild?

Я пытаюсь настроить некоторые скрипты сборки для непрерывной интеграции, и я нахожу что-то странное.

Мое решение отлично компилируется с Visual Studio 2010, но с ошибкой возникает ошибка, когда я строю то же самое из командной строки с помощью MSBuild.

Здесь ошибка, которую я получаю из сборки командной строки.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.WinFX.targets(269,9):
ошибка MC1000: Неизвестная ошибка сборки,
"Невозможно разрешить зависимость от сборки". Microsoft.Windows.Design.Extensibility, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ', потому что он не был предварительно загружен. При использовании API ReflectionOnly зависимые сборки должны быть предварительно загружены или загружены по требованию через событие ReflectionOnlyAssemblyResolve. '
[C:\Dev\Market Watch\src\Console\MarketWatch.Console\Rbnz.MarketWatch.Console.csproj]

Я проверил весь исходный код для ссылок на Microsoft.Windows.Design.Extensibility и вообще не нашел. Я также проверил все двоичные файлы, которые мы ссылаемся на этот проект, включая некоторые библиотеки DevExpress.

Моя командная строка MSBuild выглядит так:

MsBuild.exe c:\Dev\MarketWatch\src\Capture\Capture.sln 
  /t:rebuild 
  /verbosity:quiet 
  /filelogger 
  /fileloggerparameters:LogFile=c:\Dev\MarketWatch\build\Logs\capture.msbuild.log

Есть ли что-то, что я должен включить в командную строку MsBuild, чтобы заставить сборки командной строки работать так же, как и те, которые выполняются Visual Studio?

Обновление 14/4

  • Я получаю эти ошибки, несмотря на запуск сборки script из командной строки Visual Studio.
4b9b3361

Ответ 1

Надеюсь, вы решили проблему, но для справок в будущем:

У меня была такая же проблема, и она появилась из сборников DevExpress '.design'. На самом деле вы не должны ссылаться на тех, кто в вашем проекте. Удалите все ссылки на сборки DevExpress, заканчивающиеся на ".design", и они должны работать.

Ответ 2

Вы должны инициализировать пути для поиска сборок, инструментов и т.д. Вызовите vcvarsall.bat перед вызовом msbuild:

call "%ProgramFiles%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64

Или откройте консоль командной строки VS2010 и вызовите из нее script. Оба действия имеют тот же эффект.

EDIT: Я не мог понять ничего: google для вашего вопроса говорится, что вы используете Reflection в некотором роде, и одно из возможных решений описано здесь. Я прав?

Ответ 3

Недавно я столкнулся с той же проблемой.

Ошибка была отправлена ​​на наш VSTS-BuildAgent. После выполнения всех советов с сайтов Devexpress (включая Project-Upgrade), Ошибка все еще была.

Честно говоря, мы смешиваем WinForms и WPF для плавной миграции из Winforms в WPF, поэтому в основном это не повседневная проблема.

В любом случае, я смог исправить это, добавив все необходимые ссылки в WPF-Project снова, даже если они уже упоминаются в Start-Project, который является Winforms.

После этого изменения, BuildAgent смог преуспеть в сборке.