Our installer was the biggest problem. Our application is about a million lines of C# code (very few of those are p/invoke and even fewer in a C++ DLL or two) and there really wasn't any work we had to do from a code standpoint. On 64 bit Vista (and XP 64) our applications by default ran as 64 bit apps (they were .NET 2.0 apps and there is a 64 bit CLR on both platforms) due to the AnyCPU Platform target that is the default.
The only real problem we had was our registry keys and program files installed files were being installed into 32 bit compatibility locations on the box (HKLM\Software\Wow... and Program Files (x86)). Our installer (InstallShield 11.5) requires manual work to indicate a component is 64 bit-compatible to tell the MSI package to install in the 64 bit locations on the box. When a 32 bit application runs and asks for a registry key or for a common file path, the system will lie to them and redirect the request. My installer asked for "[ProgramFilesFolder]" and received "Program Files (x86)". My programs ask for it and get back "Program Files" like I expect. We tested by manually copying our registry keys and other dependent files on the box and we had zero problems running as a native 64 bit .NET application (even our 3rd party UI controls had no issues for us). What we actually ended up doing (at least in the interim) is compiling our applications against x86 Platform (instead of AnyCPU) so when our programs run and ask for registry keys and common file paths, the system tells us the same for both (Vista 64 sees our apps are 32 bit, when we ask for ProgramFiles we get "Program Files (x86)"). My situation may be different from yours, especially if you have a lot of C++ code. We have next to none so it was a surprisingly easy transition (thank you, managed execution environment). Adam.. -----Original Message----- From: Discussion of advanced .NET topics. [mailto:[EMAIL PROTECTED] On Behalf Of Smotritsky, Alex Sent: Thursday, March 15, 2007 4:24 PM To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM Subject: [ADVANCED-DOTNET] moving code from a 32 to a 64 bit server I'm interested in hearing peoples thoughts on this - like is a recompile necessary and such. =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com