Lightswitch - заставить его строить в TeamCity - PullRequest
1 голос
/ 30 января 2012

Я пытаюсь получить проект Lightswitch в Teamcity и пробовал следующие типы бегунов:

  • Visual Studio (sln)
  • MSBuild
  • Командастрока (запускала MSBuild через командную строку)

Все 3 типа бегунов выдавали одну и ту же ошибку при создании решения Lightswitch:

Задача «UnpackExtensionsToProjectDir» неожиданно завершилась неудачно.System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.

Lightswitch уже установлен на сервере.Попробовал собрать решение вручную с помощью Visual Studio на сервере, и оно прекрасно работает.Также пытался создать решение с помощью командной строки (с использованием MSBuild), и оно тоже прекрасно работает.

Хотел бы спросить, удалось ли кому-нибудь создать Lightswitch для сборки на TeamCity.Приветствия.

Ответы [ 4 ]

1 голос
/ 08 ноября 2012

Это то, как вы строите через командную строку (используя TeamCity)

предпосылки)

Сначала убедитесь, что вы не проверили в каталоге расширений, это может вызвать проблемы при сборке.

Убедитесь, что на сборочном компьютере установлены все расширения Visual Studio .ie ExtensionsMadeEasy. Вы можете проверить это, открыв решение в visual studio на сборочном компьютере и попытавшись выполнить сборку.

Наконец, в TeamCity не используйте задачу msbuild, используйте командную строку для вызова msbuild.

Шаг 1)

msbuild.exe mylightswitchproject.lsproj /p:OutDir=C:\test\stuff\;configuration=Release

Шаг 2) Создайте файл bat, чтобы скопировать вывод в правильную структуру папок.

robocopy C:\test\stuff\bin C:\test\localrelease\bin *.* /MIR
robocopy C:\test\stuff\Resources C:\test\localrelease\Resources *.* /MIR
robocopy C:\test\stuff\Web C:\test\localrelease\Web *.* /MIR
robocopy C:\test\stuff\ C:\test\localrelease\     ClientAccessPolicy.xml
robocopy C:\test\stuff\ C:\test\localrelease\     default.htm
robocopy C:\test\stuff\ C:\test\localrelease\     Home.aspx
robocopy C:\test\stuff\ C:\test\localrelease\     Login.aspx
robocopy C:\test\stuff\ C:\test\localrelease\     LogOff.aspx
robocopy C:\test\stuff\ C:\test\localrelease\     Silverlight.js
robocopy C:\test\stuff\ C:\test\localrelease\     web.config

Теперь вы можете взять эту папку и отправить ее в следующую среду.

Наконец, если вы хотите создать пакет для веб-развертывания, Visual Studio 2010 из коробки не поддерживает это. Однако вы можете скопировать его на существующий веб-сайт, а затем «экспортировать» свое приложение в пакет, который затем будет готов к развертыванию через веб-интерфейс powershell.

0 голосов
/ 18 декабря 2012

Предыдущие ответы у нас не сработали, но ответ Ягора дал какое-то указание.

У нас возникла проблема с установкой расширений на уровне пользователя, а не на уровне системы. Это означало, что процесс MSBuild не смог найти необходимые расширения.

Нашим решением было использовать учетную запись пользователя на сервере сборки, войти в нее, настроить VS.NET таким образом, чтобы компилировался проект LS, а затем переключить службу агента TeamCity на использование новой учетной записи пользователя.

Благодаря этому мы смогли использовать средство запуска решений (которое предпочтительнее, чем средство CLI, поскольку оно обеспечивает более удобное ведение журнала и создание отчетов).

0 голосов
/ 15 августа 2012

Я столкнулся с той же ошибкой при попытке настроить автоматическую сборку приложения светового переключателя с использованием бамбука. Оказалось, что была вызвана версия msbuild. Если вызывается 64-битная версия (из бамбука или из командной строки), я получаю ошибку:

UnpackExtensionsToProjectDir" task failed unexpectedly.

Переход на 32-битную версию msbuild устраняет проблему.

32-битный путь: 'C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe'

64-битный путь: 'C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe'

0 голосов
/ 31 января 2012

Для части, не относящейся к Lightswitch: если командная строка работает из консоли, но не работает в TeamCity, скорее всего, проблема в пользователе или в работе в качестве службы. Вы можете попробовать запустить агент TeamCity в той же среде .

Когда работает командная строка, вы можете попробовать запускать MSBuild и Solution.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...