【问题标题】:Visual Studio 2010 $(PlatformName) macro incompatible with MSBuild.exeVisual Studio 2010 $(PlatformName) 宏与 MSBuild.exe 不兼容
【发布时间】:2012-09-18 19:45:19
【问题描述】:

我在 Visual Studio 2010 中有一个 C# 项目,在预构建事件命令行中有这个:

echo "$(Configuration)" - "$(PlatformName)" - "$(Platform)"
exit 1

结果是:

"Debug" - "AnyCPU" - "AnyCPU"

即使该窗口的宏部分建议PlatformName 在这种情况下应该显示为Any CPU(带有空格):http://i.imgur.com/xb3Y8.png(尽管 MSDN 似乎暗示http://msdn.microsoft.com/en-us/library/42x5kfw4.aspx 没有空格)。

msbuild /property:Configuration="Debug" /property:Platform="AnyCPU"
1>MyProgram.sln.metaproj : error MSB4126: The specified solution configuration "Debug|AnyCPU" is invalid.

这里发生了什么?不幸的是,"AnyCPU" 不是命令行上的有效平台,所以我无法继续。以上内容与/property:Platform="Any CPU"(带空格)一起工作得很好。

我可以使用另一个宏,或者有一些标志让 MSBuild 接受平台吗?

【问题讨论】:

    标签: c# visual-studio-2010 msbuild pre-build-event


    【解决方案1】:

    您好像点击了MSBuild bug 503935

    报告:

    对于任何 CPU,msbuild 平台属性具有不同的值 取决于您是在构建解决方案还是构建 项目。

    解决方案使用 Platform="Any CPU" - 空间

    项目使用 Platform="AnyCPU" - 没有空间

    回应:

    Microsoft 于 2009 年 11 月 2 日下午 7:22 发布

    感谢您抽出宝贵时间向我们发送反馈。

    不幸的是,刚刚发布了 Beta 2,在周期中为时已晚 在这一点上进行调整。我们完全有道理 应该使这两个相同。看起来我们应该使用“AnyCPU” 始终如一。我们还需要确保我们落后 兼容,所以我们必须考虑到这一点。

    在下一轮中,我们希望围绕解决方案开展工作,并且 我们也许可以在那个周期内解决这个问题。对于这个周期,我 将此错误解决为“无法修复”。

    谢谢,

    查克英格兰

    Visual Studio 平台程序管理器 - MSBuild

    最终分辨率:

    因无法修复而关闭

    【讨论】:

    • 嗯,猜猜就是这样。批处理文件中的if 语句暂时负责处理它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多