MSBuild将数据附加到配置字符串

时间:2010-02-19 00:45:45

标签: msbuild build-process build-automation

我从MSBuild得到了奇怪的行为。

我使用命令:

  

msbuild.exe / p:Configuration =“发布| Windows Mobile 5.0 Pocket PC SDK(ARMV4I)”“MySolution.sln”&&退出%% ERRORLEVEL %%

它给了我错误:

  

MySolution.sln:错误MSB4126:指定的解决方案配置“发布| Windows Mobile 5.0 Pocket PC SDK(ARMV4I)|混合平台”无效。请使用“配置和平台”属性指定有效的解决方案配置(例如,MSBuild.exe Solution.sln / p:Configuration = Debug / p:Platform =“Any CPU”)或将这些属性留空以使用默认解决方案配置。

我的解决方案中有Release | Windows Mobile 5.0 Pocket PC SDK(ARMV4I)的目标。我的问题是:为什么MSBuild将“| Mixed Platforms”附加到我提供的配置中?我怎样才能摆脱这种行为?

我试过了:

  

msbuild.exe / p:配置=发布“MySolution.sln”&&退出%% ERRORLEVEL %%

但它说:

  

构建解决方案配置“发布|混合平台”。

感谢您的帮助,
佛瑞德

1 个答案:

答案 0 :(得分:1)

符号Something1|Something2适用于Configuration|Platform。因此,对于默认的C#项目,您将拥有可能的值,例如Debug|Any CPURelease|Any CPU。从您的片段看起来您正在尝试指定配置和平台。如果是这样,那么你应该这样做:

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

在这种情况下,您需要确保MySolution.sln中的所有项目都包含Release配置和“Windows Mobile 5.0 Pocket PC SDK(ARMV4I)”。

这是你需要的吗?我不确定因为我对你的陈述感到困惑“我的解决方案中有发布目标| Windows Mobile 5.0 Pocket PC SDK(ARMV4I)