Вам может понадобиться установить Visual Studio в любом случае, из практических соображений
Я собирался попытаться опровергнуть принятый ответ, опубликованный @TomasLycken в комментариях, но обнаружил, что мне нужно больше места для разговора. Несмотря на то, что я технически согласен с утверждением @TomasLycken, здесь я перечислю некоторые зависимости, которые мне было трудно установить на моем CI-сервере, - и предоставлю вам право решать, насколько правильным является принятый ответ ...
1 - основная сборка взаимодействия 'mshtml'
Вы можете увидеть проблему, с которой я столкнулся при выводе моей сборки на этой S.O. вопрос я создал и ответил. Имейте в виду, я потратил несколько часов, чтобы выяснить, как зарегистрировать желаемую PIA - и это было результатом запуска некоторых .exe-файлов на сервере, который пришел из моей установки V.Studio - хмммммм
КОНТЕКСТ: У меня был проект выигрышных форм, который использовал элемент управления веб-браузера ... и в событии 'WebDocumentCompleted' я приводил DomDocument
к hshtml.IHTMLDocument2
.. и поэтому я в моем проекте была ссылка на Microsoft.mshtml
.
РЕЗУЛЬТАТ: Теперь @TomasLycken предлагает мне разобраться с этим, исправив мой код. Сначала я хотел оплакивать это предложение. Мой код развернут и работает! Но когда я выполняю поиск в Интернете, я вижу, что Microsoft не рекомендует использовать их mshtml PIA вне среды Visual Studio, они разработали ее для .
Оскорбившие 10 строк кода фактически выполняли небольшую очистку данных от имени наших пользователей, которые проводят исследования по техническим темам в нескольких известных веб-порталах. Но когда я тестировал этот код, написанный в 2009 году, оказалось, что DOM, которым он когда-то манипулировал, теперь изменился в 2016 году. Я знаю шокирующее . Наверное, не самый умный код. Возможно, пришло время отключить эту функцию - другими словами, исправить код и подтвердить его .
@ TomasLyken Я думаю, это правильно.
2 - сценарий пост-сборки проекта Win Forms
КОНТЕКСТ: Итак, я наткнулся на эту классную технику пост-сборки на SO , которая позволяет моему файлу app.config в моем проекте WinForms подвергаться XDT-преобразованию, аналогичному тому, как Файлы web.config моих веб-проектов преобразуются. Ну, это просто работает OOTB, так сказать, если вы копируете из S.O. и в исходный файл .csproj или .vbproj. Но, как только вы поместите все это на сервер сборки без Visual Studio, критическая часть завершится сбоем из-за зависимости от:
$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
Теперь это достаточно просто для исправления .. Я только что скопировал на сервер CI мой каталог C:\Program Files (x86)\MSBuild\Microsoft
. Но должен ли я? Так как я отказался от оговорок о том, что Visual Studio обычно будет поддерживать ... можно утверждать, что принятый ответ @ TomasLycken по-прежнему прав в этом вопросе, тоже.
3 - Просто установите все пакеты .NET Framework и Multi-Targeting Pack на месте
Пункты 1 и 2 выше, на самом деле были последними вещами, которые я победил в своей попытке запустить мою первую работу по сборке. И моя первая работа по сборке для стека решений, который я создал и поддерживал в течение последних 8 лет ... поэтому он выдержал несколько фреймворков и имел бы некоторую нетривиальную текстуру. Я знал, что это будет нелегко. На самом деле, я надеялся создать CI-сервер, который мог бы собрать этот .sln, что он на самом деле был бы готов построить большинство любых других решений, которые мы на него бросили.
Когда я впервые получил свой чистый сервер "Windows 2012 R2", на нем просто не хватало многих вещей ... и мне интересно, если бы я сначала установил Visual Studio, если бы он сразу исправил некоторые из этих вещей
Ниже приведен мой краткий обзор того, что я должен был сделать - но он не показывает боль и страдания, связанные с выяснением всего этого и ложных стартов. Может быть, это поможет кому-то еще.
> First, uninstalled 4.6.1 framework
-- (find Update for Microsoft Windows (KB3102467) and click Uninstall.)
-- also uninstalled anything from MS labeled with C++ redistributable (a later step will restore these)
> Then, install Windows 7 SDK (installs critical "reference assemblies" and a proper baseline 4.0 framework)
-- Then, install Multi-Targeting Pack for Framework 4.0.1 (netfx_401mtpack.exe)
-- Then, install Multi-Targeting Pack for Framework 4.0.3 (netfx_403mtpack.exe)
> Then, reinstalled 4.6.1 framework for 2012 R2 (KB3102467)
> Then, installed Microsoft .NET Framework 4.6.1 Developer Pack (DP461-DevPack-KB3105179-ENU.exe)
> Then, installed "Visual Studio 2015 Build Tools" (BuildTools_Full.exe)
> Downloaded a copy of nuget.exe and put it in the C:\Windows directory
4 - избавление от предупреждения «отсутствует набор правил» MSB3884
Из сообщения @ kevinbosman на этот GitHub выпускает ветку
Если вы не хотите редактировать файл Microsoft.CodeAnalysis.Targets, обратите внимание, что этого недостаточнопросто скопируйте папку C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets\
на сервер сборки.
Вам также необходимо создать ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\Setup\EDev
и добавить строковое значение StanDir
= C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\
5 - Получение MSTest для правильной работы
- Нужно скопировать dll на вашу сборочную машину, некоторые должны зарегистрироваться с GAC Подробнее здесь , в частности:
- Microsoft.VisualStudio.QualityTools.Resource.dll
- Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
- Нужен скопированный реестр реестра вашей машины разработчикана сервер сборки
- некоторые предупреждения, если вы хотите, чтобы они исчезли, согласно этому справочному форуму Microsoft Visual Studio , требующему установки VS 2010 и Feature Pack 2 .