installing 32 bit app on 64 bit Windows

J

Julie

Hey, so I have a C# application that I build on 32 bit Windows XP. I
need to compile it for use on 64 bit Windows, however. It uses (COM)
DLLs that must run in 32 bit address space, so I believe my app should
also be built as a 32 bit app, right?

Up until now, I have been building it and its associated .msi
installer file to run on Windows 2000 (i.e. 32 bit), and that's worked
fine. I have never before built the app to run under 64 bit Windows
before, and I'm not sure what exactly to do.

1. For building the project itself (as opposed to the .msi) do I
select "any CPU" or x64?
2. For the .msi, do I set the target properties to x64?

I actually tried the install a few different ways, but in running it,
it crashed with the following error code: clr20r3

Thanks!
Julie
 
J

Jason Keats

Julie said:
Hey, so I have a C# application that I build on 32 bit Windows XP. I
need to compile it for use on 64 bit Windows, however. It uses (COM)
DLLs that must run in 32 bit address space, so I believe my app should
also be built as a 32 bit app, right?

If you target x86, then on it's first run it will be JIT compiled to 32bit.
 
J

Julie

Thanks as always, Peter, for your help. Your clarification helps.

So, for the settings on the project itself, at the top it says
"Platform" and I have a choice between: "Active (Any CPU)", "Any CPU",
and "All Platforms". Does it matter what I select here?

Below, it says "Platform Target", and I assume I select "x86" here.

For the .msi properties, there's "Target Platform", and I assume I
select "x86" here.
 
J

Julie

Actually, this may be a dumb question, but...

I've always built the project (.exe) prior to building the .msi, but
is that really necessary? Do I really just need to build the .msi (if
deploying on another machine)?
 
J

Jeff Johnson

I've always built the project (.exe) prior to building the .msi, but
is that really necessary? Do I really just need to build the .msi (if
deploying on another machine)?

I believe the setup project will compile your source project if the source
is out of date. In other words, SOMETHING needs to build the .exe first, but
more than likely it doesn't need to be you.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top