Cus*_*dio 3 c# 64-bit visual-studio-2008 windows-7
我正在将我的操作系统更新到Windows 7 x64,我只有运行32位操作系统的经验.有没有人在64位环境下有任何糟糕/良好的体验?
作为参考,我使用的工具是:
Han*_*ant 21
在64位操作系统上运行会产生许多副作用,这些副作用在某种程度上是显而易见的.最常见的问题:
在Visual Studio中编辑并继续将无法正常工作.您可以通过强制.NET应用程序以32位模式运行来解决此问题.Project + Properties,Build选项卡,Platform Target = x86.在VS2013中得到了解决.
如果您在.NET应用程序中使用任何ActiveX控件或COM组件,您可能会发现您的程序不再有效,因为您的计算机没有相应的64位版本的COM服务器.您将收到错误0x80040154,REGDB_E_CLASSNOTREG,"未注册的类".与上面相同的修复.
64位调试器不支持混合模式调试,您必须提交"仅托管"或"仅本机"调试.与上面相同的修复,只要您没有64位特定问题.在VS2010中得到了解决.
在需要IntPtr时声明uint或int的写得不好的P/Invoke声明将停止在64位模式下工作.您通常会收到AccessViolation异常或失败返回代码.或PInvokeStackImbalance MDA警告.找到错误不应该有任何问题,只需修复声明即可.
64位版本中没有几个传统的寿命终止Microsoft库.这通常是Microsoft Access数据库的问题.与上面相同的修复.
您必须使用正确版本的Regasm.exe来注册[ComVisible]程序集.从Framework或Framework64中选择一个,具体取决于客户端程序是以64位还是32位模式运行.或者两者都希望服务器可用.
一些COM类型库在其方法声明中包含依赖于位的参数.ADO 2.8是值得注意的.一定要使用正确的Tlbimp.exe位来生成正确的COM互操作程序集,Visual Studio将不会这样做.与Regasm.exe相同的方法
32位程序具有与64位程序不同的注册表视图.特别是HKCR和HKLM\Software荨麻疹是虚拟化的.在Regedit.exe中,可以在HKLM\Software\Wow6432Node键下看到32位可见键.这可能会导致使用注册表的程序出现许多细微问题..NET 4 RegistryKey.OpenBaseKey()允许指定所需的视图.
对于COM,您将使用Regsvr32.exe的正确位数来注册非托管COM服务器(不是.NET服务器,它们使用Regasm.exe).对于64位服务器,请使用c:\ windows\system32中的一个,对于32位服务器,请使用c:\ windows\syswow64.
文件系统中的文件夹是虚拟化的,特别是c:\ windows\system32和c:\ program files.32位程序将显示c:\ windows\syswow64和c:\ program files(x86).
安装人员需要考虑上述所有问题.
| 归档时间: |
|
| 查看次数: |
2305 次 |
| 最近记录: |