我相信建筑类型(x86vs64)是抽象离开你的时候制作。净的程序,但是否有任何其他考虑,可能会导致问题呢?

有帮助吗?

解决方案

谨防秘密进行win32调用的第三方COM库或第三方.NET库。这就是我们最头疼的地方。

其他提示

MSDN doco, 除其它考虑:

在许多情况下,大会将运行相同的32位或64位CLR。有些原因的程序不同的行为时运行的64位CLR包括:

  • 结构,包含成员 变化大小取决于平台, 如任何指的类型。

  • 指针,包括算术 恒的大小。

  • 不正确的平台调用或COM 声明,使用Int32为 处理,而不是因此.

  • 铸因此,Int32

此外,默认文件的位置。

这篇文章有很多好需要注意的问题:http://osnews.com/story/20330/Windows_x64_Watch_List

就个人而言,我的老板有64位Vista计算机,我和节目中的一个32位的模式。我们已经遇到下列问题:

  • 注册为32位应得到隐藏的(排序)成Wow6432Node文件夹。不是所有的应用程序是用来寻找路径,为在注册表中将在这一节点(SQL服务器不会,例如)。

  • SysWow64在C:\Windows 文件夹中可能会导致问题的Dll不需要它们的地方(我们有这个问题w/3缔约方授权的成分)。

  • 有时你需要的文件是在"C:\Program 文件(86)",而不是"C:\Program 文件"。很烂。

  • 阅读和写作的64位值是无线的安全上的一个32位的平台。读一64位值取两种行动可以中断一下开关.见MSDN上的文章 穿线。联锁。阅读 更多的信息。

  • 也完全同意与 torial's 答案! :-)

MSDN已经放了一个小小的纸张问题的的移植32-位应用程序至64位执行环境。

http://msdn.microsoft.com/en-us/library/ms973190.aspx

其他两个博客作者以前曾写了关于64位的发展时,他们的工作在CLR的团队

x64将允许您处理更多内存,但是在相同代码的情况下,它将使用比x86更多的内存。

根据我的经验,移植Asp.NET应用程序基本上是完美的。在32位机器和64位上运行,除了有更多可用内存之外没有问题发生。发生这种情况是因为已经提到的许多问题(注册表,线程等)都由Asp.NET管理,您需要正确地修复它们以在Asp.NET环境中运行。

客户端(Windows窗体)发生了同样的情况,但是如果你使用了一些“不安全”的话。用于获取特殊文件夹或注册表访问权限的API可能会发生一些问题,如已经指出的那样。

此致 马西莫

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top