3

(это билд сервер .net)Должен ли я устанавливать SDK на сервер сборки?

Я получаю следующее сообщение об ошибке:

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1679,9): error MSB3091: Task failed because "LC.exe" was not found, or the .NET Framework SDK v2.0 is not installed. 

The task is looking for "LC.exe" in the "bin" subdirectory beneath the location specified in the SDKInstallRootv2.0 value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework. 

You may be able to solve the problem by doing one of the following: 

1.) Install the .NET Framework SDK v2.0. 

2.) Manually set the above registry key to the correct location. 3.) Pass the correct location into the "ToolPath" parameter of the task. 

Это происходит потому, что мы используем компонент, который требует LIC.exe для компиляции.

теперь я могу решить эту проблему, установив последнюю версию Microsoft SDK на сервере сборки, но я думал, что всего смысл сервера сборки, чтобы не иметь ваши Dev инструментов установленных на нем. Я думаю, что, вероятно, может решить эту проблему, но не после того, как некоторые работы, выясняя некоторые вещи (как эти ребята сделали)

http://richardsbraindump.blogspot.com/2009/07/some-teambuild-fun-and-games.html

я должен установить SDK? и что более важно:

Какова основная цель сервера сборки?

ответ

4

Лучший способ сделать это - хранить все необходимое для создания сборок в управлении источником. При этом вам не нужно проходить все серверы сборки, когда ваша цепочка сборки обновляется, это произойдет автоматически. Дополнительным преимуществом является то, что вы можете вернуться во времени и все еще иметь возможность получить все, что вам нужно, без необходимости вникать во все ваши старые компакт-диски, чтобы найти инструменты, необходимые для создания старых версий вашего продукта.

Однако это может быть невозможно для всех инструментов сборки. Например, мы попытались сделать это с помощью Visual Studio 2005, но при создании из неинсталлированной цепочки инструментов у нас возникли странные прерывистые ошибки pdb из mspdbsrv. Поэтому, к сожалению, все наши серверы сборки имеют VS2005 (но не цепочку инструментов PS3, что действительно очень приятно, поскольку она обновляется довольно часто).

С уважением,

Sebastiaan

+0

Вы занимаетесь разработкой PS3. Круто. Как ты это понял? Являются ли компиляторы и библиотеки общедоступными или вам нужно заключать соглашения с Sony? –

+0

Согласен. Я действительно думаю, что вам нужно сохранить все инструменты, необходимые для сборки в Source Control. Хранение инструментов в источнике дает проекту прочность, которая предотвращает хаос, когда приходит время для обновления инструментов до новой версии (и с функцией «назад во времени» контроля источника, ее гораздо меньше шансов сломать прошлую сборку ! MS иногда делает это трудно (например, его парадигма с LC.exe, требующая записи reg), однако это можно позаботиться в скрипте сборки, и, безусловно, стоит потратить время на скрипты, а не на создание и поддержку отдельный сервер тестирования модулей – KevinDeus

+0

, не говоря уже о том, что иногда не требуются отдельные тестовые серверы! , но в большинстве случаев это выглядит как в большинстве случаев, когда минимальный набор инструментов (например, просто * программное обеспечение для запуска сборки) упрощает и упрощает дает вам больше возможностей. – KevinDeus

8

Основной целью сервера сборки является создание кода. Все, что необходимо для создания кода, должно быть на сервере сборки.

3

Я бы сказал, что сервер сборки должен иметь все необходимое для сборки; на сервере TEST могут не быть установлены SDK.

+0

Это какой-то смысл и, тем не менее, мы используем CCNET, который проходит тесты NUnit вместе со сборкой. (если тесты проходят, тогда сборка тоже). Вы имеете в виду какой-то ручный сервер тестирования? – KevinDeus

+0

Различные места называют это разными именами - тест, принятие. Окружающая среда, очень близкая к производству, чтобы убедиться, что система (включая ее установку) работает без поддержки инструмента или SDK. Тесты NUnit не были бы адекватными в этой среде, но, возможно, возможно тестирование переднего конца (например, Canoo WebTest) –

6

Ваш сервер построения имеет, чтобы иметь все ваши инструменты/библиотеки для сборки/dev. Вот как это будет делать сборка.

Итак, да, установите SDK.

+0

Да, это, по-видимому, имеет смысл, но тогда как вы справляетесь со старым «Нет ошибок в dev dev» , но есть ошибки в поле «проблема»? Мне кажется, что в этом случае, используя эту философию, вы просто хотите построить другую машину, кроме своей собственной. – KevinDeus

+0

также, что произойдет, если вы обновите свой набор инструментов и сломаете кучу своих сборников (у нас есть 20 из них), это время, потраченное на исправление этого оправдания? – KevinDeus

+3

Точка сервера сборки должна поддерживать постоянную среду сборки. Разработчики ПК часто меняются и имеют разные версии библиотек. Имея сборку ПК, вы знаете, что ваши сборки всегда будут против правильных библиотек и компиляторов. Если вы хотите проверить правильность выполнения ваших сборок в блоке, отличном от dev, вам нужно выполнять все свои модульные тесты на другой машине. –

Смежные вопросы