2009-07-16 136 views
7

我有一个奇怪的问题,并希望有人可以帮助我。Visual Studio 2008项目属性构建配置缺失选项

我有一个解决方案与13个独立的C#项目。我正在使用Vista x64进行开发,并且我想构建这些项目以定位x86平台。这通常很容易。我可以转到解决方案属性 - >配置属性并将平台更改为x86。这里奇怪的部分是,我的3个项目拒绝让我选择x86。

所以,我想我会分别去这三个项目中的每一个,并在项目属性 - >构建和更改平台中进行更改。这些项目并没有配置和平台下拉菜单。我搜索了一下,在工具 - >选项 - >项目和解决方案 - >显示高级版本配置中找到了一个设置。选择此项后,当进入项目属性以查找违规项目时,我现在可以看到两个下拉列表,但该平台只允许我选择“活动”(任何CPU)。

我也无法将解决方案属性中的平台更改为x86这些项目。

任何想法?

回答

10

听起来像构建配置已变得棘手。很可能是添加了三个项目后,将溶液配置为具有支持x86(新项目只支持AnyCPU,即使该解决方案支持更多的平台。)

  • 转到建设 - >配置管理器...
  • 变化'Active Solution Platform'to x86(如果有的话,如果只有AnyCPU,那么就使用它)。
  • 对于每个违规项目,在Platform列中选择'New'
  • 选择New Platform as'x86' ,从任何CPU复制设置,并确保复选框不勾选。
  • 点击确定。

获得解决方案和单个项目之间的配置/平台一致性可能非常棘手。配置管理器可能会意外行为 - 特别是使用自定义解决方案配置时。我建议先玩一个测试解决方案。

0

我会比较csproj文件的文本内容,看看是否有任何设置已经出错或意外。同时检查sln的内容,也许配置有些奇怪。

问候,

Sebastiaan

+0

感谢您的回复。我确实花了一些时间来做这件事,并且创建了一个新项目并将源文件从一个拷贝到新项目中。新项目按照应有的原则工作。虽然改变其中一个大型项目的前景令人望而生畏,但至少可以说... – tardomatic 2009-07-16 14:50:33

2

我还开发了在x64和部署的x86。但是,我不会从默认值(任何CPU)更改平台,它对我来说工作得很好。你是否有任何代码(例如Win interop)在不同平台上工作不同?查看this post by Hanselman了解32/64位.NET定位的详细信息。

+0

嗨,谢谢你的回应。不幸的是,我确实需要与32位interop交互,因此需要编译为x86。我认为您提供的链接可能存在问题。我有兴趣阅读它。 – tardomatic 2009-07-16 14:49:04

+0

修复了链接。不要忘记upvote :) – zvolkov 2009-07-16 15:57:58

+1

优秀的阅读,感谢您的链接。书签。 – tardomatic 2009-07-16 18:16:26

-2

对于Visual Studio 2010.要运行Access 12.0:在解决方案资源管理器中单击项目名称,选择属性 - 生成* - 目标平台 - x86。

相关问题