Что вызывает «Не удается устранить ошибку зависимости» от MsBuild? - PullRequest
13 голосов
/ 13 апреля 2011

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

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

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

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.WinFX.targets (269,9):
ошибка MC1000: неизвестная ошибка сборки,
«Невозможно разрешить зависимость от сборки» Microsoft.Windows.Design.Extensibility, версия = 4.0.0.0, культура = нейтральная, 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

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

Ответы [ 3 ]

38 голосов
/ 05 января 2012

Я надеюсь, что вы решили проблему, но для дальнейшего использования:

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

0 голосов
/ 12 февраля 2018

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

Ошибка была выдана нашему агенту VSTS-BuildAgent. После следования всем советам с сайтов Devexpress (включая Project-Upgrade) ошибка все еще была.

Если честно, мы смешиваем WinForms и WPF для плавного перехода от Winforms к WPF, так что в принципе это не повседневная проблема.

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

После этого хода, BuildAgent смог преуспеть в Build.

0 голосов
/ 13 апреля 2011

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

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

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

РЕДАКТИРОВАТЬ: Я не мог понять одну вещь - Google на ваш вопрос говорит, что вы используете Reflection неправильно, и одно из возможных решений описано здесь . Я прав?

...