相关疑难解决方法(0)

Visual Studio"任何CPU"目标是什么意思?

我对Visual Studio 2008中的.NET平台构建选项有一些困惑.

什么是"任何CPU"编译目标,它生成什么类型​​的文件?我检查了这个"Any CPU"构建的输出可执行文件,发现它们是x86可执行文件(谁也看不到它!).那么,将可执行文件定位到x86与"任何CPU"之间有什么区别吗?

我注意到的另一件事是托管C++项目没有这个平台作为选项.这是为什么?这是否意味着我怀疑"任何CPU"可执行文件是普通的32位可执行文件是对的?

.net 64-bit build visual-studio-2008

477
推荐指数
8
解决办法
20万
查看次数

何时在Visual Studio中定位x64

我最近开始了一份新工作,我注意到每个人都在谈论的第一件事就是将所有我们的.NET应用程序"更新" 到x64.我最初认为这很奇怪,因为我们都知道.NET编译为平台不可知IL并且特定CLR运行代码.

再往前看,我发现这篇有用的文章这篇SO帖子有助于解释事情.

所以现在我明白IL没有改变,只有元数据基本上说是在WOW64上运行或者不在x64系统上运行(简而言之).

因此,如果我在x64系统上,我可以指定"任何CPU"本地运行,但不支持32位dll; 我可以指定"x86",它将支持32位dll(因为它们都将在WOW64下运行); 但我什么时候会指定"x64"?在x64系统上的"Any CPU"方案中似乎支持64位dll.如果我想阻止某人在32位系统上运行我的应用程序或者在尝试加载32位dll时确保失败,这是不是?

在我看来,如果你的项目中有一些第三方dll ,你只需要将它设置为"Any CPU"以外的其他东西.对于其他不与其他dll打交道的项目,最好将其作为"任何CPU"吗?

如果我碰巧将我的目标设置为"x86",因为我有一个32位的第三方dll,如果在WOW64下的64位系统上,我的应用程序是否真的被认为是在64位运行?

.net 64-bit build visual-studio-2010

7
推荐指数
1
解决办法
1841
查看次数