4

我在 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 接受平台?

4

1 回答 1

6

看起来您遇到了MSBuild 错误 503935

报告:

msbuild Platform 属性对于 Any CPU 具有不同的值,具体取决于您是构建解决方案还是构建项目。

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

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

回复:

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

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

不幸的是,刚刚发布了 Beta 2,此时进行调整为时已晚。我们应该使这两者相同是完全有道理的。看起来我们应该对两者都使用“AnyCPU”。我们还需要确保我们向后兼容,因此我们必须考虑到这一点。

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

谢谢,

查克英格兰

Visual Studio 平台程序管理器 - MSBuild

最终决议:

因无法修复而关闭

于 2012-09-18T20:01:24.707 回答