http://www.microsoft.com/downloads/details.aspx?FamilyID=000364db-5e8b-44a8-b9be-ca44d18b059b&displaylang=en
http://blogs.msdn.com/b/data/archive/2007/06/05/64-bit-oledb-provider-for-odbc-msdasql-available-in-longhorn-server-starting-beta-3.aspx?PageIndex=2#comments
Back to 32-bit vs. 64-bit .NET Basics
when you install .NET on a 64-bit machine the package is bigger because you're getting BOTH 32-bit and 64-bit versions of stuff. Some of the things that are 64-bit specific are:- Base class libraries (System.*)
- Just-In-Time compiler
- Debugging support
- .NET Framework SDK
If I File|New Project and make a console app, and run it, this is what I'll see in the Task Manager:

Notice that a bunch of processes have *32 by their names, including devenv.exe? Those are all 32-bit processes. However, my ConsoleApplication1.exe doesn't have that. It's a 64-bit process and it can access a ridiculous amount of memory (if you've got it...like 16TB, although I suspect the GC would be freaking out at that point.)
That 64-bit process is also having its code JIT compiled to use not the x86 instruction set we're used to, but the AMD64 instruction set. This is important to note: It doesn't matter if you have an AMD or an Intel processor, if you're 64-bit you are using the AMD64 instruction set. The short story is - Intel lost. For us, it doesn't really matter.
Now, if I right click on the Properties dialog for this Project in Visual Studio I can select the Platform Target from the Build Tab:

By default, the Platform Target is "Any CPU." Remember that our C# or VB compiles to IL, and that IL is basically processor agnostic. It's the JIT that makes the decision at the last minute.
"If you have 100% type safe managed code then you really can just copy it to the 64-bit platform and run it successfully under the 64-bit CLR."