OK - here is my problem. I've got an assembly which uses SQL Server DTS files, which in my code I attempt to load from the directory the assembly is currently running in. I want to strong name the assembly and install it in the GAC, but how do I get the DTS files in there too so the assembly can still locate them?
I ruled out the following:
a) Add the DTS files as embedded resources, since the LoadPackage function requires me to load it from a physical file (unless I do some horrible messing to extract the resource and save it to disk every time I need to use it!)
b) Install the DTS files in some known location (like Common Files) and change my code to attempt to load them from there if it can't find them locally. The problem with this approach is that the DTS files themselves may be different from version to version, so I need to be able to have side-by-side installation.
One approach I did try is making my assembly a multi-file assembly, with the other files being the DTS files. I managed to do this using al.exe and a nifty little tool called ilmerge.exe. However, this introduced oother problems.
Visual Studio doesn't provide any support for multi-file assemblies, so I had to do all the messing with command line tools in a post build event (since I program in
VB and not C# I had to rely on some plug-ins available for download on the Microsoft site - see
http://weblogs.asp.net/rosherove/arc...04/225431.aspx).
After finally getting this to work I discovered that when trying to build an installer, when the assembly is added as a Project Output or as a detected dependency, then the installer picks up the pre post-build (

) assembly.
Does anyone know of a simpler way of doing what I am trying to do???
Thanks