我正在使用Visual Studio 2012 Premium Update 5。
我有一个激活x86平台的解决方案,在我的计算机上有一个值为BWS
的平台环境变量。
当我右键单击解决方案并选择rebuild时,我在所有项目中都会出现以下错误:
未为项目设置OutputPath属性 'MyCompany.Data.Environment.Model.csproj'。请检查以确保 您已指定Configuration和的有效组合 这个项目的平台。 Configuration ='Debug'Blatform ='BWS'。 如果某个其他项目试图遵循a,也可能出现此错误 项目到项目参考这个项目,这个项目已经 卸载或未包含在解决方案和引用中 项目不使用相同或等效的配置构建 或平台。
如果我选择'x86',它为什么会得到Platform ='BWS'?
注意:在互联网上搜索我发现此Platform=BWS
是HP机器特有的(我在惠普工作站上遇到此问题)。我的任何Visual Studio项目都没有说这个环境变量,惠普在他们所有的计算机上都说过它。看看here和here。
但是,如果我使用msbuild /p:Configuration=Release /p:Platform=x86
,它会毫无问题地编译。
我用Visual Studio创建了另一个项目,这个项目在Visual Studio上完美编译。
在第一个项目解决方案中,我发现了这个:
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug MySoftware|Any CPU = Debug MySoftware|Any CPU
Debug MySoftware|x64 = Debug MySoftware|x64
Debug MySoftware|x86 = Debug MySoftware|x86
Debug Plugins|Any CPU = Debug Plugins|Any CPU
Debug Plugins|x64 = Debug Plugins|x64
Debug Plugins|x86 = Debug Plugins|x86
Debug Remote Plugins|Any CPU = Debug Remote Plugins|Any CPU
Debug Remote Plugins|x64 = Debug Remote Plugins|x64
Debug Remote Plugins|x86 = Debug Remote Plugins|x86
Debug SDK|Any CPU = Debug SDK|Any CPU
Debug SDK|x64 = Debug SDK|x64
Debug SDK|x86 = Debug SDK|x86
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
有很多配置。我删除了它们但它仍然没有编译并显示相同的错误。
如果我删除Platform=BWS
环境变量,我没有看到关于Platform=BWS
的错误,但我得到另一个告诉它没有找到另一个解决方案的项目dll。似乎Visual Studio不编译任何依赖项目,只搜索他们的dll。
我认为问题是Visual Studio没有传递给msbuild平台值(就像@stijn所说的那样)。