为啥在 Visual Studio 2012 中禁用了“首选 32 位”复选框?

Posted

技术标签:

【中文标题】为啥在 Visual Studio 2012 中禁用了“首选 32 位”复选框?【英文标题】:Why is the checkbox 'Prefer 32-bit' disabled in Visual Studio 2012?为什么在 Visual Studio 2012 中禁用了“首选 32 位”复选框? 【发布时间】:2013-05-08 22:52:06 【问题描述】:

我遇到了一种情况,我想将 Prefer 32-bit 设置为 true。但在 Visual Studio 2012 中,它显示为已禁用。而且无论我做什么都不会启用。

我读到 Any CPU with Prefer 32-bit 是所有新项目的默认值。那么,我是否应该假设虽然它被禁用但它被设置为 true?那你怎么能把它设置成Any CPU呢?

What AnyCPU Really Means As Of .NET 4.5 and Visual Studio 11 以及 Stack Overflow 的许多其他帖子和问题中,它说:

总的来说,现在 /platform C# 编译器开关有五个选项:x86、Itanium、x64、anycpu 和 anycpu 32 位首选

而且,我有一些同事向我提到过去启用了该复选框(也许他们错了?)。

为什么 Prefer 32-bit 复选框被禁用,我该如何再次启用它?

我的处理器是 64 位的,我已将 Update2 应用到 Visual Studio 2012。

【问题讨论】:

1) 项目针对哪个框架版本?我想如果您针对旧版本,它不可用。 2)这是一个什么样的项目?类库还是可执行文件?对于喜欢架构的类库来说并不是很有用。 【参考方案1】:

假设您有一个可执行项目,那么如果您将目标平台更改为 .NET 4.5,它应该会启用。

这是一个仅限 .NET 4.5 的东西,它只对可执行文件启用。

【讨论】:

这也是一个“可执行项目”。所以它对类库被禁用了。 啊,是的,我会补充的。 谢谢!我一直在项目中四处走动,以至于我从未注意到它会在那时启用:) 可怕的是他们默认设置了这个,没有工具设置来关闭它。更糟糕的是,除非关闭,否则您无法在 csproj 文件中搜索它! Web 应用程序也算作 DLL 而不是 .exe,因此复选框被禁用。【参考方案2】:

如果有人在 Visual Studio 2013(可能还有 Visual Studio 2012)中遇到 .NET 4.5 可执行文件:

我们通过将项目切换到 .NET 4.0 然后切换回 .NET 4.5(在项目属性的“构建”选项卡上)解决了这个问题。这重新启用了 AnyCPU 的“首选 32 位”复选框。

【讨论】:

【参考方案3】:

如果您的项目是单元测试项目,也可以禁用此设置。事实证明,设置不是我的问题。我通过将 Visual Studio 测试运行程序更改为以 64 位进程运行测试来运行测试。

在 Visual Studio Community 2015 中,我在“测试”菜单中找到了这个: 测试 > 测试设置 > 默认处理器架构 > X64

以下是来自 Microsoft 的更多信息:https://msdn.microsoft.com/en-us/library/ee782531.aspx

【讨论】:

以上是关于为啥在 Visual Studio 2012 中禁用了“首选 32 位”复选框?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 2012 找不到我的测试?

为啥我收到错误“Microsoft Visual Studio 2012 已停止工作”(当我单击文本框时)[关闭]

为啥visual studio2012在新建c++项目的时候会出现这个对话框?

为啥用visual studio2012编程时输入汉字显示为问号

为啥以下无法在 Visual Studio 2010 C++ 下编译?

c++ 函数模板的问题,请看代码,为啥去掉注释后,visual studio 2012会无法运行。