Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
DotNet
acad.assignment.mngr
academic
adonet
aspnet
aspnet.announcements
aspnet.build.controls
aspnet.caching
aspnet.datagridcontrol
aspnet.mobile
aspnet.security
aspnet.webcontrols
aspnet.webservices
clr
compactframework
component_services
datatools
distributed_apps
drawing
faqs
framework
framework.wmi
general
internationalization
interop
languages.csharp
languages.jscript
languages.vb
languages.vb.controls
languages.vb.data
languages.vb.upgrade
languages.vc
languages.vc.libraries
myservices
odbcnet
performance
remoting
scripting
sdk
security
setup
vjsharp
vsa
webservi.enhancements
webservices
windowsforms
windowsforms.controls
winforms.databinding
winforms.designtime
xml
  
 
date: Thu, 31 Jan 2008 12:45:02 -0800,    group: microsoft.public.dotnet.distributed_apps        back       


versioning question for sub-assemblies   
We are trying to figure out a solution and trying to find a good source of 
information.

We have an enterprise product that loads many different .net assemblies - 
all follow a specific interface but do various tasks.
We have common .net libraries, that each of those task-assemblies use, and 
we wanted a way to allow/specify each task-assembly to use (if required) a 
particular version of the common libraries.

So Enterprise.EXE can launch
Function1.DLL
and/or Function2.DLL
and/or Function3.DLL

and ideally the common libraries CommonA.DLL, CommonB.DLL, CommonC.DLL
could be versioned separately for each functional assembly. These are NOT 
satellite assemblies for localization - we just want to ensure version safety 
for common DLLs.
In case we wanted to install a new Function2.DLL and the Common?.DLL
but not have the new Common?.DLL be used by the other Function?.DLL

Currently the approach is copying/renaming the common projects, so Function1 
used F1CommonA, F1CommonB, & F1CommonC.
But of course that isn't the ideal solution.

I assume using the GAC should solve it, but I have not found an (easy to 
understand) GAC reference. But even if we took that path I assume we'll be 
need to configure what uses what.
I have looked at the app.config files and using redirection rules - but it 
seems to be based on "the application" and I need to specify rules for 
assemblies and "sub-assemblies".

I thought maybe renaming the common projects and having the Functional 
projects refer to the renamed assembly - but something in the build process 
was complaining that it could not find the assembly (I think the error was 
MSB3217).

I also wondered if an assembly can dynamically load another assembly in code 
and whether that would resolve the issues?

The other task I tried was using ILMerge to combine the parent & common 
assemblies - but I don't think that is the best approach anyway.

So we've thought of different ideas, and seen a number of webpages talking 
about various ideas (including disassembling and reassembling...) but I 
didn't see a good example that is geared about assemblies and it's 
dependencies.

Any suggestions?
date: Thu, 31 Jan 2008 12:45:02 -0800   author:   WayneM

RE: versioning question for sub-assemblies   
To clarify it - or at least put it in different words:

Let's say we have a service that is database-driven about what tasks it does 
and it loads assemblies bases on the desired task.

Many of those task assmeblies use other common assemblies - so how do we 
specify the version of the common assembly that each task assembly would load 
if there is no "application" to use an app.config with?

I would think I am not the first person to tackle this so would we create 
our own config file that the assembly reads to determine what version of the 
common assembly to dynamically load? Or is there another solution?





"WayneM" wrote:

> We are trying to figure out a solution and trying to find a good source of 
> information.
> 
> We have an enterprise product that loads many different .net assemblies - 
> all follow a specific interface but do various tasks.
> We have common .net libraries, that each of those task-assemblies use, and 
> we wanted a way to allow/specify each task-assembly to use (if required) a 
> particular version of the common libraries.
> 
> So Enterprise.EXE can launch
> Function1.DLL
> and/or Function2.DLL
> and/or Function3.DLL
> 
> and ideally the common libraries CommonA.DLL, CommonB.DLL, CommonC.DLL
> could be versioned separately for each functional assembly. These are NOT 
> satellite assemblies for localization - we just want to ensure version safety 
> for common DLLs.
> In case we wanted to install a new Function2.DLL and the Common?.DLL
> but not have the new Common?.DLL be used by the other Function?.DLL
> 
> Currently the approach is copying/renaming the common projects, so Function1 
> used F1CommonA, F1CommonB, & F1CommonC.
> But of course that isn't the ideal solution.
> 
> I assume using the GAC should solve it, but I have not found an (easy to 
> understand) GAC reference. But even if we took that path I assume we'll be 
> need to configure what uses what.
> I have looked at the app.config files and using redirection rules - but it 
> seems to be based on "the application" and I need to specify rules for 
> assemblies and "sub-assemblies".
> 
> I thought maybe renaming the common projects and having the Functional 
> projects refer to the renamed assembly - but something in the build process 
> was complaining that it could not find the assembly (I think the error was 
> MSB3217).
> 
> I also wondered if an assembly can dynamically load another assembly in code 
> and whether that would resolve the issues?
> 
> The other task I tried was using ILMerge to combine the parent & common 
> assemblies - but I don't think that is the best approach anyway.
> 
> So we've thought of different ideas, and seen a number of webpages talking 
> about various ideas (including disassembling and reassembling...) but I 
> didn't see a good example that is geared about assemblies and it's 
> dependencies.
> 
> Any suggestions?
>
date: Mon, 4 Feb 2008 10:04:02 -0800   author:   WayneM

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us