在VS 2010中为项目配置平台

7
我在Visual Studio中有一个第三方项目类型,由于某种原因,只支持构建.NET平台配置,对于解决方案中的其他所有(标准C#)项目,我只有AnyCPU。不幸的是,自从升级到VS2010后,在构建时会产生以下错误:
错误39:未设置OutputPath属性 'ReferencedBusinessProject.csproj'项目。 请确保为此项目指定了有效的Configuration和Platform组合。 Configuration = 'Debug' Platform = '.NET'。 如果某个其他项目正在尝试按照项目对项目引用来引用此项目,则也可能出现此错误,此项目已被卸载或未包含在解决方案中,并且引用项目没有使用相同或等效的Configuration或Platform进行构建。
它非常描述缺失的内容,但到目前为止我还没有找到任何修复它的方法。 你有什么想法如何解决这个问题吗?

在.csproj文件中添加/编辑OutputPath不能解决问题吗? - alexandrul
如果我在那里放置一个无条件的OutputPath(适用于所有配置),那可能会解决问题的一部分。然而,问题在于该配置未被识别,因此所有有条件的属性都被忽略了。 - Tomas Vana
你是否尝试过创建一个“新解决方案”,其中包含类似于实际项目的空项目占位符?然后根据“占位符”.csproj文件查看/编辑/修改真正的.csproj文件?您可能会在.csproj文件中缺少大量部分,这些部分指定不同生成的不同配置。我不是MSBUILD专家,但毕竟它只是一些XML。 - Marvin Smit
不确定是否有帮助:您可以在“生成”->“配置”菜单中创建新的配置(x86和x64)。如果并非所有项目都是“任何 CPU”,则批处理构建器(msbuild)将无法正确匹配它们。 - Sauleil
1个回答

3
在您接手项目之前,必须为该项目创建 .Net 平台,以保证透明度,请检查项目设置,如果正在构建任何 CPU,则请修复项目配置。 (标准是 AnyCPU、x86、x64、win32 等)...
我建议您右键单击 ".sln" 文件,在配置管理器中设置在调用平台时要构建的内容的属性。例如:
这个示例最好使用一个名为 "Mixed Platforms" 的配置。
csproj1    platform=AnyCPU configuration=debug  build checkbox (checked)
csproj2    platform=.net   configuration=debug  build checkbox (checked)

这将使您能够使用msbuild进行构建。
调用应该是:
msbuild my.sln /p:configuration="Debug" /p:platform="Mixed Platforms"

两个项目都将被构建。


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