Bill, I just spent a week facing the same issue and came to the conclusion to load the necessary assemblies from where ever they are installed by hooking the event that gets raised when the runtime can't find an assembly:
see http://support.microsoft.com/default.aspx?scid=kb;en-us;837908#6 >> Scenario: >> We have developed several business components. >> The goal of the business components is to encapsulate common business >> functionality. >> We have developed several client applications that use the business >> component's functionality. >> All of the common business components are Serviced components because they >> utilize MTS to commit or rollback any transactions against the database. >> MTS, of course, requires strong naming. >> We currently have the business components deployed to the GAC and they >> are "registered" as Serviced components. The main reason for using the GAC >> for deployment was that it made making references among them work without >> any additional configuration and it also allows for the components to run >> as "Server applications". >> Issues: >> While GAC deployment made making inter-component and client referencing >> easier, it of course forces strict versioning between components and >> referencing and clients that use them. >> While I see the benefit in enforcing strict versioning in this scenario, >> constant vigilence on versioning of shared components and clients can be >> very painful. Using it implies redeploying any clients and or components >> that receive a new build number. To date, in development, we've "locked" >> the versions but now we'd like to start versioning deployments with build >> numbers. >> Main questions: >> Are there any MS best practices outlined for these situations. I find >> really nothing comprehensive on the in-and-outs of using the .Net >> framework >> along with application and component versioning. >> In principle, I would not want to privately deploy a copy of each business >> component to each client that uses it (which happens all the time in the >> Java world). This really defeats the principle of sharing components. >> Besides, the use of COM Server application configuration actually >> precludes >> its use. >> I believe this scenario actually requires a strict build process that >> automates to build process for all related client applications and shared >> components but I'm trying to verify that this is the case. >> Additional related questions: >> Is there a way to tell a client to bind to the assembly with highest build >> number in the GAC and not to a specific version. >> Are there other options for sharing strong named business components with >> multiple clients that don't involve the GAC and versioning? >> =================================== >> This list is hosted by DevelopMentor� http://www.develop.com >> Some .NET courses you may be interested in: >> NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles >> http://www.develop.com/courses/gaspdotnetls >> View archives and manage your subscription(s) at >> http://discuss.develop.com =================================== This list is hosted by DevelopMentor� http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
