MSBuild добавляет данные в строку конфигурации - PullRequest
1 голос
/ 19 февраля 2010

Я получаю странное поведение от MSBuild.

Я использую команду:

msbuild.exe / p: Configuration = "Release | Windows Mobile 5.0 SDK для карманных ПК (ARMV4I)" "MySolution.sln" && exit %% ERRORLEVEL %%

И это дает мне ошибку:

MySolution.sln: ошибка MSB4126: указанная конфигурация решения «Выпуск | Windows Mobile 5.0 SDK для карманных ПК (ARMV4I) | Смешанные платформы» недопустима. Укажите допустимую конфигурацию решения, используя свойства Configuration и Platform (например, MSBuild.exe Solution.sln / p: Configuration = Debug / p: Platform = "Any CPU"), или оставьте эти свойства пустыми, чтобы использовать конфигурацию решения по умолчанию.

В моем решении есть цели для выпуска | Windows Mobile 5.0 Pocket PC SDK (ARMV4I). Мой вопрос: почему MSBuild добавляет «| Mixed Platforms» к конфигурации, которую я предоставил? Как я могу избавиться от этого поведения?

Я пытался:

msbuild.exe / p: Configuration = Release "MySolution.sln" && exit %% ERRORLEVEL %%

Но там сказано:

Конфигурация строительного решения "Release | Mixed Platforms".

Спасибо за помощь,
Фред

1 Ответ

1 голос
/ 19 февраля 2010

Обозначение Something1|Something2 для Configuration|Platform. Таким образом, для проектов C # по умолчанию у вас будут возможные значения, такие как Debug|Any CPU или Release|Any CPU. Из вашего фрагмента похоже, что вы пытаетесь указать как конфигурацию, так и платформу. Если так, то вы должны сделать это следующим образом:

msbuild.exe /p:Configuration="Release",Platform="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" MySolution.sln

В этом случае вам необходимо убедиться, что все проекты внутри MySolution.sln содержат конфигурацию выпуска и определен «Windows Mobile 5.0 Pocket PC SDK (ARMV4I)».

Это то, что тебе нужно? Я не уверен, потому что я запутался в вашем утверждении " В моем решении есть цели для выпуска | Windows Mobile 5.0 Pocket PC SDK (ARMV4I) "

...