【问题标题】:MSBuild appending data to configuration stringMSBuild 将数据附加到配置字符串
【发布时间】:2011-01-18 14:23:15
【问题描述】:

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

我使用命令:

msbuild.exe /p:Configuration="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)" "MySolution.sln" && exit %%ERRORLEVEL%%

它给了我错误:

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

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

我试过了:

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

但它说:

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

感谢您的帮助,
弗雷德

【问题讨论】:

    标签: msbuild build-process build-automation


    【解决方案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 中的所有项目都包含发布配置和定义的“Windows Mobile 5.0 Pocket PC SDK (ARMV4I)”。

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

    【讨论】:

    • 感谢您的帮助。确保每个项目都定义了“Release”和“Windows Mobile 5.0 Pocket PC SDK (ARMV4I)”就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多