Как создавать решения C #, C ++, C с использованием компилятора MsBuild и VS2017 через Batch File? - PullRequest
0 голосов
/ 29 октября 2018

Я строю свои решения с помощью MsBuild в командном файле следующим образом:

@echo off
set msBuildExe="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
set solutionsFile="C:\TestProject\mySln.sln"
rem Build the solutions:  
%msBuildExe% /t:Build /p:Configuration=Release /p:Platform=x64 %solutionsFile%  

Проблема в том, что у меня установлено несколько версий Visual Studio, и я хочу указать MsBuild.exe использовать компилятор VS2017.

Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Вам нужны две отдельные вещи: msbuild, чтобы управлять процессом сборки, и компилятор / компоновщик / ... для выполнения фактических фаз сборки. На самом деле они ортогональны (теоретически, не уверены, насколько далеко это идет на практике): msbuild, поставляемый с VS2017, можно использовать для построения проекта с использованием компилятора / компоновщика из VS2013, если для этого настроена среда. Итак, что вам действительно нужно, так это последнее: вам, вероятно, все равно, какая именно версия msbuild используется точно, вы хотите использовать правильные наборы инструментов C ++ / C #.

Канонический способ сделать это - запустить BAT-файлы, поставляемые с каждой версией VS, которые доступны из меню «Пуск» как « Командная строка разработчика ». Это также установит путь к msbuild, так что вам не нужно жестко его кодировать. (обратите внимание, что эти пакетные файлы также имеют аргументы, позволяющие выбирать различные версии наборов инструментов и т. д., но это выходит за рамки этого вопроса)

Пример для VS2017, без жестко закодированных путей, поэтому его следует использовать повторно на машинах и предприятии / сообществе /...:

@echo off
call "%VS150COMNTOOLS\Tools\VsDevCmd.bat"
set solutionsFile="C:\TestProject\mySln.sln"
msbuild /t:Build /p:Configuration=Release /p:Platform=x64 %solutionsFile%  
0 голосов
/ 01 ноября 2018

Как создавать решения C #, C ++, C с использованием компилятора MsBuild и VS2017 через пакетный файл?

Согласно блогу Visual Studio MSBuild теперь является частью Visual Studio! :

Начиная с Visual Studio 2013, версия MSBuild 2013 года будет поставляется как часть Visual Studio вместо .NET Framework. это Переход позволяет нам быстрее развиваться MSBuild.

Мы могли бы знать, что MSBuild поставляется как часть Visual Studio вместо .NET Framework. Итак, если вы хотите использовать компилятор Visual Studio 2017, вам нужно использовать MSBuild из Visual Studio 2017:

Путь: C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ MSBuild.exe

Кроме того, вы также можете использовать файл VsDevCmd.bat для настройки среды сборки, как сказал Стийн: если вы выполняете этот файл, вам не нужно указывать путь MSBuild, вы можете напрямую запустить MSBuild.exe.

Проверьте аналогичную нить для некоторых деталей.

Надеюсь, это поможет.

0 голосов
/ 29 октября 2018

Это должно привести вас туда, куда вы идете

Что нового в MSBuild 15

Измененный путь

MSBuild теперь установлен в папке под каждой версией Visual Студия. Например, C: \ Program Files (x86) \ Microsoft Visual Студия \ 2017 \ Enterprise \ MSBuild . Вы также можете использовать следующие Модуль PowerShell для поиска MSBuild: vssetup.powershell.

...