Проблемы сборки .NET 4.0 на CI-сервере

99

Кому-нибудь удается собрать приложения .NET 4.0 на сервере CI без установки Visual Studio 2010 на сервере CI?

SDK для .NET 4.0 не существует. Установили .NET 4.0 на CI Server. Msbuild.exe работает с простыми проектами и дает следующее предупреждение:

(GetReferenceAssemblyPaths target) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): предупреждение MSB3644: эталонные сборки для платформы «.NETFramework, Version = v4.0» не были найдены. Чтобы решить эту проблему, установите SDK или Targeting Pack для этой версии платформы или перенацелите свое приложение на версию платформы, для которой у вас установлен SDK или Targeting Pack. Обратите внимание, что сборки будут разрешены из глобального кэша сборок (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно нацелена на предполагаемую платформу.

DMcKenna
источник
1
Как сделать это не предупреждением, а фатальной ошибкой? Он скрыт в нашем журнале сборки и вместо этого выходит из строя с каким-то загадочным сообщением о mscorlib.dll
полковник Паник
Я написал подробный пост по этому поводу
Neel

Ответы:

128

Вам больше не нужно устанавливать VS, вы можете установить «Microsoft Windows SDK для Windows 7 и .NET Framework 4» прямо сейчас.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

Джереми Вейр
источник
44
Размер по умолчанию составляет 1,7 ГБ, но большинство из этих файлов не нужны. Если вы уберете все флажки, кроме .NET Development> Intellisense и Reference Assemblies, которые все равно предоставят вам пакет таргетинга .NET 4, который вам нужен (это около 450 МБ).
Люк Сэмпсон
1
Вы также можете проверить .NET Development> Tools, так как это приведет к появлению нескольких утилит, таких как sn.exe, которые пригодятся для работы с подписанными сборками.
Mykro
8
Существует также веб-установщик, поэтому вам нужно загрузить только необходимые части. Можно скачать здесь: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Хотя это называется «для Windows 7», стоит отметить поддерживаемые операционные системы: Windows 7, Windows Server 2003 R2 Standard Edition (32-разрядная версия x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP с пакетом обновления 3
Aligma,
2
Этот ответ мне поможет. У меня была другая проблема с установкой sdk 7.1, которая решена, как показано здесь mathworks.com/matlabcentral/answers/95039
ari
23

SDK для .NET 4.5 доступен здесь . Установщик хорошо работает с прокси с базовой авторизацией. Поддерживаемые операционные системы: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Мой ответ больше похож на комментарий к ответу Джереми , но у меня недостаточно репутации, чтобы комментировать ответы.

Реснянский
источник
1
На указанной странице: «Windows SDK больше не поставляется с полной средой сборки из командной строки. Windows SDK теперь требует, чтобы компилятор и среда сборки устанавливались отдельно». Поэтому я предполагаю, что этого недостаточно для запуска сервера сборки.
Крис
1
Это исправило это для меня. Вам нужно только выбрать вариант «.NET Framework 4.5 Software Development Kit», который требует всего 62,3 МБ и отлично работает на сервере TFS Build 2013, установленном на Windows Server 2012 R2 для развертывания приложений SharePoint. Нет необходимости переопределять параметр FrameworkPathOverride.
Коэн Зомерс
10

другая альтернатива: без установки Net 4.0 SDK или vs 2010

Скопируйте папку эталонных сборок со своего компьютера разработчика на сервер сборки (190 МБ).

используйте параметр msbuild -p: FrameworkPathOverride, чтобы указать ссылку на папку сборок

расположение эталонных сборок:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 или C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

нашел это из:

Предупреждения о эталонных сборках сервера сборки .NET 4.0 MSB3644

Если вы получаете эту ошибку: «Microsoft.WebApplication.targets не найден» - просто скопируйте цель с машины разработчика https://stackoverflow.com/a/5344246/423356

если mvc3 не установлен на сервере сборки; «добавить развертываемые сборки» в проект mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Если у вас возникла ошибка при создании проекта MSTest без установленной SDK или Visual Studio; Об этом есть несколько сообщений в блоге, но решение для меня слишком сложное. Я использую NUnit вместо MSTest

воздушный змей
источник
Поскольку мой сервер 2012 года не позволил мне установить .Net 4, потому что установщик сказал, что есть более высокая версия. Я сделал то, что сказал @kite, и скопировал с компьютера, на котором был установлен VS 2012. Это решило мои проблемы.
chdev77
0

На этой странице перечислены пакеты SDK .NET для каждой версии Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Для меньшей загрузки выберите «пакет разработчика» или «целевой пакет», а не полный Windows SDK.

Полковник Паник
источник
Это может быть общий совет по установке пакета разработчика или пакета таргетинга, но для .NET Framework 4.0 (речь идет о самом вопросе) такого пакета нет, и Windows SDK неизбежен.
Лекс Ли,