построить приложение .net в Jenkins с помощью MSBuild

У меня есть приложение .net, построенное на платформе .net 3.5, я пытаюсь создать это приложение на сервере Jenkins CI. Я добавил плагин MSBuild и добавил путь к файлу .exe версий 2.0, 3.5 и 4.0 MSBuild. Но мои процессы сборки не работают из-за сообщения об ошибке ниже.

Path To MSBuild.exe: msbuild.exe  
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%  
'msbuild.exe' is not recognized as an internal or external command,  
operable program or batch file.  
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure  
Finished: FAILURE  

Может ли кто-нибудь, пожалуйста, помочь мне .. ??


person Bijoy K Jose    schedule 19.04.2012    source источник


Ответы (5)


Чтобы плагин MSBuild работал, вам необходимо настроить плагин на экране управления Jenkins.

ПРИМЕЧАНИЕ: в более новых версиях Jenkins вы найдете конфигурацию MSBuild в Global Tool Configuration:

введите описание изображения здесь


Конфигурация установки Jenkins MSBuild

Обратите внимание на поле «Имя», в котором я назвал эту конкретную конфигурацию v4.0.30319. Вы можете называть его как угодно, но в идеале имя будет как-то относиться к версии.

Вам нужно будет ссылаться на это имя позже в ПРОЕКТЕ Jenkins, который терпит неудачу.

Примечание. Желтое предупреждение означает, что в поле «Путь к MSBuild» следует указать имя каталога, а не имя файла. На практике вам также нужно ввести здесь имя файла (например, msbuild.exe), иначе этап сборки завершится ошибкой.

В неудачном проекте Jenkins перейдите к этапу сборки MSBuild.

Первое поле на этапе сборки - «Версия MSBuild». Если вы создали этап сборки до настройки каких-либо версий MSBuild, здесь будет указано значение (по умолчанию).

Шаг сборки Jenkins MSBuild с выбранной конфигурацией msbuild (по умолчанию)

После настройки одной или нескольких версий MSBuild раскрывающийся список будет заполнен доступными конфигурациями. Выберите тот, который вам нужен.

Вы можете видеть здесь, что теперь я выбрал именованную конфигурацию, которая соответствует установке выше.

Шаг сборки Jenkins MSBuild с выбранной именованной конфигурацией msbuild

person Damith    schedule 19.04.2012
comment
Я посмотрел на желтое предупреждение, удалил msbuild.exe и продолжал получать ошибку ... ваш ответ был единственным, в котором упоминалось что-либо об этом, и я очень рад, что вы это добавили! - person iamserious; 05.01.2015
comment
Могу ли я создать эти два проекта, используя только один раздел Построить проект или решение Visual Studio с помощью MSBuild? - person MichaelMao; 17.12.2015
comment
Если вы используете VS2015 / C # 6 с msbuild, вы должны указать путь к файлу msbuild в C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin, спасибо для решения jessehouwing: stackoverflow.com/a/32008030/1677041 - person Itachi; 07.07.2016
comment
У меня нет папки MSBuild \ 14.0 \ в моих программных файлах. Я установил VS2015 Profession. Где взять этот MSBuild Tool 2015 тоже не помогло. - person hirenhcm; 02.08.2016
comment
Зачем нужен .sol / .proj? Разве Дженкинсу не следует создавать проект в папке Workspace? - person Lakshay; 29.05.2017
comment
MSBuild можно скачать здесь visualstudio.com/downloads - person Liam; 06.12.2017

Jenkins | Manage Jenkins | Configure System

прокрутите вниз до раздела MSBuild и щелкните установки MSBuild.

определить полный путь к msbuild.exe, в моей системе у меня 3.5 и v4.0.30319

Примечание - указывайте путь к 32-битным инструментам даже в 64-битной системе, иначе вы можете получить сообщение об ошибке:

Сборка приложения Windows Phone с использованием 64-разрядной версии MSBuild не поддерживается.

Итак, в Jenkins - это может быть, например:

Название: Версия 3.5

Путь: C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

Название: Версия 4.0

Путь: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe

person Pavel Zeman    schedule 04.12.2012

Я думаю, вам следует установить абсолютный путь для «msbuild.exe» в конфигурации Jenkins, например:

C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
person fmgp    schedule 19.04.2012
comment
Он прав. В плагине есть ошибка. Конфигурация Jenkins запрашивает путь к MSBuild.exe, но на самом деле это должен быть ПОЛНЫЙ путь к MSBuild.exe. Он предупредит вас, но вы можете сохранить его таким образом, и он работает. - person justdan23; 10.07.2015

Вы также можете добавить путь к файлу msbuild.exe в системную переменную среды PATH узла (или узлов), на котором выполняется это конкретное задание.

person Ignacio Fernández    schedule 21.10.2015

Вы можете попробовать выполнить

%comspec% /k ""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86

, которая временно обновит переменные пути к вашей среде, чтобы отразить среду сборки VS2010. Выполните это перед вызовом MSBUILD и посмотрите, что произойдет. Я без проблем использую это в своих сценариях сборки.

Примечание; очень вероятно, что иметь несколько версий MSBUILD в вашем PATH непродуктивно. Сосредоточьтесь на том, чтобы одна версия работала, и двигайтесь дальше.

person Mel Padden    schedule 19.04.2012
comment
Я рекомендую использовать подключаемый модуль MSBuild для Jenkins. Однако, если вы действительно хотите создать сценарий командной строки, не используйте% comspec%, вместо этого используйте «CALL» без каких-либо дополнительных параметров, и среда останется для остальной части вашего сценария. Например: CALL C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat x86 - person justdan23; 10.07.2015