views:

23

answers:

1

Hi,

I'm automating my MSBuild-based C# solution build using Hudson running on a Windows machine. My product depends on a number of third-party DLLs that need to be registered in some form or fashion for the build to work. Are there any best practices for performing that sort of registration via MSBuild or Hudson?

The particulars:

  • Redemption requires that I run regsvr32 against their DLLs once per machine. I can tolerate doing a per-machine configuration step, but I'd rather not, as I'd prefer a fully-contained build.

  • Add-in Express requires that I run RegAsm /tlb against their COM components. It would seem that I need to do this for every clean checkout of my repository (in which the DLLs are contained).

Thanks,

-Patrick

A: 

If you're looking for a self-contained build, with no registry dependencies, you might want to look at registration-free COM. See MSDN: unmanaged | managed.

Reg-free COM does the job nicely; it's supported from XP upwards, and you can retrofit it to third-party libraries. However it's a little complicated (you need to declare your DLL's COM servers in a separate manifest file in XML format), and debugging can be a pain (especially on XP and Server 2003, where there are no tools to help you).

Tim Robinson
Cool, thanks -- this looks like the right approach. However, it also looks like just registering the things on the build servers might be the easiest approach in the short term.
Patrick Linskey