Ошибка компиляции WCF на сервере CI: Microsoft.VisualStudio.ServiceModel.targets не найден

Я получаю эту ошибку на моем сервере CI:

ошибка MSB4019: импортированный проект "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" не найден

Кажется, что мой проект библиотеки WCF ссылается на этот файл, но папка VisualStudio на Program Files\MSBuild\Microsoft не содержит папку WCF.

Думаю, мне нужно что-то установить на сервере.

Что мне нужно установить?

Ответы

Ответ 1

Хорошо, это испортило мое утро, но не позволяйте ему разрушать чужие. Я не мог найти эту информацию нигде. Вам нужно скопировать несколько файлов с машины разработки с помощью VS Pro 2012.

Как упоминает aphexddb, вам нужно скопировать некоторые цели из C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF в одно и то же место на вашем сервере CI.

Затем это ссылается на сборку под названием Microsoft.VisualStudio.ServiceModel.Core. Вы можете найти эту сборку в GAC или в каталоге IDE на C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE.

Скопируйте это на свой CI-сервер и выполните gacutil.exe -i Microsoft.VisualStudio.ServiceModel.Core.dll

Этого было достаточно, чтобы исправить это для меня.

Это не первый раз, когда я нашел цели, отсутствующие в моей экспресс-установке VS на моем сервере CI. Я не могу не чувствовать, что есть какой-то пакет, который я могу загрузить откуда-то, что наполняет все это. Кто-нибудь знает о такой вещи? Если нет, возможно, мы должны создать его.

Ответ 2

Извлеките этот файл в папку

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF

Имя файла: "Microsoft.VisualStudio.ServiceModel.targets"

Ответ 3

Я столкнулся с этим с Visual Studio 2017, для меня было решено изменить мою установку Visual Studio, чтобы включить компоненты Windows Communication Foundation.

Ответ 4

В этой же проблеме. Удалось решить следующее:

  • Установлен Microsoft Установщик веб-платформы

  • Скопированный каталог "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF" из dev-ноутбука с Visual Studio 2012 на сервер сборки

Ответ 5

У меня была такая же ошибка. Моя проблема заключалась в том, что MS изменила способ поиска MSBuild версий VS в шаблоне процесса сборки.

Обязательно используйте правильный шаблон процесса сборки. Если вы используете TFS2013 и VS2013, используйте TfvcTemplate.12.xaml

Ответ 6

Я столкнулся с этой же ошибкой. В моем случае проблема заключалась в том, что мой проект Visual Studio 2008 не получил правильную модернизацию, возможно, из-за того, что мой исходный элемент был отмечен как "только для чтения". Чтобы исправить это, я загрузил решение в Visual Studio 2015 всем, что вышло.

Конкретная строка в файле .csproj изменилась с

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />

Для

<Import Project="$(WcfServiceModelTargetPath)\Microsoft.VisualStudio.ServiceModel.targets" />