指定的解决方案配置“Debug|BNB”无效。

21
在Expression Blend 4中编译时,我收到一个错误,指出:

指定的解决方案配置“Debug | BNB”无效。请使用Configuration和Platform属性指定有效的解决方案配置(例如MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform =“Any CPU”),或者将这些属性留空以使用默认的解决方案配置。
已构建项目“myproject.sln” - 失败。
构建失败。


我曾经遇到过同样的问题,但是在PowerShell中使用自动化构建时。删除环境变量对我有用! - andrew.fox
4个回答

40

背景:在构建时,编译器(无论是从 Expression Blend 还是 Visual Studio 开始)必须知道你的代码的目标平台,即系统架构,比如 X86、64 位等。

问题现在是,一个名为“Platform”的环境变量的系统范围设置似乎会覆盖 Expression Blend 用作目标平台的任何设置。

我在其他网站上找到了一些解决方法,并在这里提供可能的解决方案。尝试其中一个建议应该有所帮助:

  • 删除“控制面板——系统——高级——环境变量”中的冲突环境变量“Platform”。重新启动 Blend 并尝试(可能需要重新启动计算机才能使其生效)。
  • 如果这不起作用:使用注册表编辑器(开始——运行——“Regedit.exe”)进入键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 并选择键 Platform。删除值 BNB。如果您找不到指定的键,请尝试将“CurrentControlSet”替换为“ControlSet001”,这也适用于某些情况。然后重新启动您的计算机。

请评论哪个解决方案有效。


1
我正在跟随Scott Hanselman的MSBuild教程(http://www.hanselman.com/blog/HackParallelMSBuildsFromWithinTheVisualStudioIDE.aspx),并且遇到了相同的错误信息。删除环境变量(并重新启动)对我有用。 - David McClelland
7
删除“平台”环境变量,然后重新启动电脑解决了我的问题。显然,HP Easy Setup将该变量设置为“BNB”。https://dev59.com/-HE95IYBdhLWcg3wAo5U - theisenp
谢谢!这让我疯了,我有一些使用命令行工具构建的遗留代码,而我的惠普笔记本电脑有注册表设置。删除它并重新启动解决了我的问题。我能够修复一个非常难以理解的错误。 - Justin
我们选择了第二个选项:删除了平台的值并重新启动。这对我们有用,谢谢! - workabyte
平台正在设置中,但上述两种方法都不起作用,我在其他地方也找不到解决方法,所以我在批处理文件中添加了 SET PLATFORM= 命令来清除 X64 的值,问题得到了解决。 - Robert Kerr
感谢惠普在我的电脑上又搞砸了一件事情。还要感谢@theisenp帮我找到了应该责备的人。 :) - skiphoppy

4

我刚刚从环境变量中移除了“Platform”,然后它就可以工作了。


需要在此之后执行命令提示符重启 - 只是让大家知道。 - a''

0
如果还不行,尝试指定配置和平台。
例如:
msbuild testproject.sln /p:Configuration=Debug /p:Platform="Any CPU"

这对我有效。


0

使用Microsoft Visual Studio,以下解决方案应该可以在不重启计算机的情况下工作。运行命令行(Windows键+R,输入cmd,按enter),并为您的项目输入相应的命令:

MSVC 2013: SET MSBUILD="C:\Program Files Path\MSBuild\12.0\Bin\msbuild.exe"

MSVC 2015: SET MSBUILD="C:\Program Files Path\MSBuild\14.0\Bin\msbuild.exe"

SET SOLUTION="your solution name.sln"
SET PROJECT="your target project name"
SET MS_PLAT="target platform"
; this could be x64 for 64 bit applications or Win32 for 32 bit applications
%MSBUILD% %SOLUTION% /t:%PROJECT% /p:Platform=%MS_PLAT%

对我来说,PLATFORM = BWS。运行上述脚本一次可以永久地解决我的项目问题,而无需修改或删除PLATFORM。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接