Ошибка компиляции 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
В этой же проблеме. Удалось решить следующее:
Ответ 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" />