Как указать платформу для MSBuild?
Я пытаюсь использовать MSBuild для создания решения с указанной целевой платформой (мне нужны как двоичные файлы, x86 и x64). Вот как я это пробовал:
C:WINDOWSMicrosoft.NETFrameworkv3.5>MsBuild SolutionPathSolution.sln /t:Rebuild /p:Configuration=Release /p:Platform="x86"
однако сборка всегда терпит неудачу, если платформа отличается от "любого процессора". Что я делаю не так?
это время вывода MSBuild печатает:
C:WINDOWSMicrosoft.NETFrameworkv3.5>MsBuild
Путь РешенияРешение.sln/t: перестроить
/п:настройки=релиз
/p: Platform= " x86" Microsoft (R) Build
Версия Двигателя 3.5.30729.1 [Microsoft
.Framework, версии
2.0.50727.3082] Copyright (C) Microsoft Corporation 2007. Все права
зарезервированный.
сборка началась 1.7.2010 8:28: 10.
Проект " Путь РешенияРешение.СЛН" на
узел 0 (Rebuild targe t (s)).
Путь РешенияРешение.СЛН : ошибка
MSB4126: указанный в Sol ution
конфигурация "Release / x86" является
недействительный. Пожалуйста, укажите действительный
решение c onfiguration с помощью
Конфигурация и платформа свойства
(например, MSBuild.решение ехе.ФСЛ
/п:настройки=отладка
/p: Platform= "любой процессор") или оставьте их
участники узнают пустым, чтобы использовать по умолчанию
конфигурация решения. Готовое Здание
Проект " Путь РешенияРешение.ФСЛ"
(Rebuild t arget (s)) -- не удалось.
ошибка сборки.
"РешениеSolutionPath.sln "(перестроить
цели) (1) ->
(Цель ValidateSolutionConfiguration)
- >Путь РешенияРешение.sln: ошибка MSB4126: указанный s olution
конфигурация "Release / x86" является
недействительный. Пожалуйста, укажите действительный
конфигурация решения с использованием
Конфигурация и свойства платформы
(например, MSBuild.решение экс е.ФСЛ
/п:настройки=отладка
/p: Platform= "любой процессор") или оставьте их
pro perties пустой, чтобы использовать значение по умолчанию
конфигурация решения.
0 Warning(s)
1 Error(s)
Время Истекло 00: 00: 00.03
Если я попытаюсь построить его для x86 / x64 с devenv, он отлично работает, однако я пытаюсь настроить сервер сборки без установки всех необходимых версий Visual Studio. Кстати, если есть лучший бесплатный инструмент (который поддерживает .NET framework 4), я хотел бы услышать об этом.
3 ответов:
если вы хотите построить решение для x86 и x64 ваше решение должно быть настроено для обеих платформ. На самом деле у вас просто есть любой ЦП конфигурации.
Как проверить доступную конфигурацию для проекта
чтобы проверить доступную конфигурацию для данного проекта, откройте файл проекта (
*.csprojнапример) и искатьPropertyGroupправоCondition.если вы хотите построить в
Releaseрежимx86, вы должны иметь что-то вроде этого в ваш файл проекта:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> ... </PropertyGroup>как создать и изменить конфигурацию в Visual Studio
в MSBuild или Teamcity используйте командную строку
MSBuild yourproject.sln /property:Configuration=Release /property:Platform=x64или используйте более короткую форму:
MSBuild yourproject.sln /p:Configuration=Release /p:Platform=x64однако вам все равно нужно настроить платформу в своем проекте, см. ответ Жюльена Хоарау.
Если вы пытаетесь сделать это из командной строки, вы можете столкнуться с проблемой, когда для вас устанавливается переменная среды "платформа" для всей машины и работает против вас. Я могу воспроизвести это, если я использую командное окно VS2012 вместо обычного окна командной строки windows.
в командной строке введите:
установить платформу
в командном окне VS2012 у меня есть значение' X64 ' preset. Это, кажется, мешает все, что есть в моем файле решения.
в обычном окне команд команда 'set' приводит к сообщению "переменная не определена"...это хорошо.
Если результат вашей команды " set " выше не возвращает значения переменной среды, вы должны быть хороши, чтобы идти.
Comments