2015-08-26 3 views
2

Я пытаюсь выполнить сборку проекта WPF (.Net Framework 4.0) с использованием сборок Microsoft.Build, то есть не строить из VS, а не строить с использованием стандартного MSBuild из командной строки , Все мои проекты построить успешно, но проект WPF выдает следующее сообщение:Создание приложения WPF с использованием сборок Microsoft.Build

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.WinFx.targets (268,9): MSB4127 ошибки : Задача «MarkupCompilePass1» не может быть создана из сборки «PresentationBuildTasks, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35». Убедитесь, что сборка задач построена с использованием той же версии сборки Microsoft.Build.Framework, что и на вашем компьютере, и что ваше хост-приложение не пропускает перенаправление привязки для Microsoft.Build.Framework. Невозможно передать объект типа «Microsoft.Build.Tasks.Windows.MarkupCompilePass1» для ввода «Microsoft.Build.Framework.ITask». [C: \ Service \ Test.csproj] C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.WinFx.targets (268,9): ошибка MSB4060: задача "MarkupCompilePass1" объявлена ​​или использована неправильно, или не удалось во время строительства. Проверьте правописание имени задачи и имени сборки.

Я нашел ссылки (на переполнение стека) отметить обновленные MSBuild сборки (12,0 против 4,0) и т.д. и т.п. Это все было обновлено, то есть ссылки из утилиты сборки, но не повезло.

Любые идеи/предложения?

ответ

2

Мы используем подобную систему, и проблема, похоже, связана с компиляцией тега страницы: <generator>MSBuild:Compile</generator>. Это, кажется, вызывает MSBuild таким образом, что вытаскивает библиотеки фреймворков 4.0.

Для нашего встроенного исполняемого файла мы просто изменили конфигурацию, чтобы включить конфигурации, используемые в конфигурации 12.0 MSBuild. то есть взять элементы в C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe.config и поместить их в конфигурацию вашего приложения. Это решило проблемы для нас.

+0

У меня точно такая же проблема, как и ОП. Можете ли вы уточнить, какие были ваши модификации? Мне удалось найти файл конфигурации, который вы упомянули, а также строки MSBuild: Compile, но я не уверен, как объединить эти два файла. – Brent

+1

Эй, ты спас мой день. @Brent В моем случае «build executable» представляет собой проект ASP.NET с Web.config, который имеет раздел, который выглядит как « "- в этом разделе вставьте зависимую сборку xml в C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin – tofutim

+0

Спасибо @tofutim! Это прояснилось для меня, и я начал работать сейчас! – Brent