2017-02-01 21 views
1

У меня есть сценарий MSBUILD (файл .bat), который создает проект. Мне нужен сценарий MSBuild, который будет выполняться локально (до совершения репо) для запуска на определенной версии MSBuild, которая соответствует нашему серверу управления построением и непрерывной интеграцией. Вопрос заключается в том, что все местные ящики для разработчиков в настоящее время установили:Как заставить версию MSBuild?

C:\Windows\Microsoft.NET\Framework\v3.5

C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Program Files (x86)\MSBuild\14.0

Так на локальном поле они запустить мой сценарий сборки:

msbuild MyProject.HelloWorld.proj 

Проблема в том, что она строит с помощью какой-либо MSBuild версия указана как самая высокая в своей переменной окружения Windows.

Я могу сказать, какая версия MSBuild была использована нашим журналом сборки.

Я попытался указания tools version путем изменения сценария передать параметр Toolsversion:

msbuild /toolsversion:14.0 MyProject.HelloWorld.proj 

но безрезультатно проект был построен с MSBuild версии 4.0.

Я могу попросить всех разработчиков изменить порядок их переменных пути к среде и поместить C: \ Program Files (x86) \ MSBuild \ 14.0 вверху, что затем приведет к его созданию с помощью MSBuild 14, но я искал менее навязчивый способ решения этой задачи.

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

+0

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

+1

Ни одна из версий msbuild.exe не принадлежит PATH. Вы можете сделать это очень мало, чтобы не допустить, чтобы разработчики зависали, чтобы служить в своих целях, или используя неправильную командную команду разработчика, подумайте о предоставлении им, если файл .bat. –

+0

@LexLi Хорошая идея. Не стесняйтесь представить в качестве ответа. Я могу отметить это как ответ в зависимости от других ответов, которые я получаю. – ConfusedDeer

ответ

2

Измените свой `.bat» скрипт для вызова конкретного msbuild.exe:

"C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" MyProject.HelloWorld.proj