So I have a .NET COM .dll server and I would like to distribute it to any platform (64-bit or 32-bit) to be used by any client (32-bit or 64-bit, particularly). I probably am going to package the .dll in an installer project since that seems to be the easiest way to register the component. I don't want to have to distribute different installers. How do I do this? The assembly is in IL so it can be compiled on the target machine, right?
This is what I've tried:
1) In project properties (C# .dll) I set COM interop to true and I set platform to "Any CPU"
2) Compile and register dll on my 32 bit machine.
3) Create an installer project.
4) Set installer project property TargetPlatform to x86 or x64 (I've tried both)
5) Build installer.
Now this will work for the 32-bit client, but the 64-client throws an error saying that the "class is not registered" even though the class appears in OLEview. Now, I assume that OLEView is just showing me the registered 32-bit components and the 64-bit ones are separate.
So maybe the installer should have some logic knowing to register it for 64-bit? I don't know.
Oh, and I would also appreciate any references to books you think I would need or articles if from my post it seems I'm missing a particular body of knowledge.
Greatly appreciate you taking the time to read,