473,325 Members | 2,608 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,325 software developers and data experts.

Shared dll paths

I have several projects that use the same dlls. When deploying these
projects, is there a way that I can have all the shared dlls in one
subdirectory and the project specific files in another?

Programs
|
|-App 1
|
|-App 2
|
|-Shared Dlls
Thanks

Apr 24 '06 #1
9 3509
It would probably make better sense to place those dll's in the GAC.


"Dwight" <dt********@gmail.com> wrote in message
news:11*********************@u72g2000cwu.googlegro ups.com...
I have several projects that use the same dlls. When deploying these
projects, is there a way that I can have all the shared dlls in one
subdirectory and the project specific files in another?

Programs
|
|-App 1
|
|-App 2
|
|-Shared Dlls
Thanks

Apr 24 '06 #2

Dwight wrote:
I have several projects that use the same dlls. When deploying these
projects, is there a way that I can have all the shared dlls in one
subdirectory and the project specific files in another?

Programs
|
|-App 1
|
|-App 2
|
|-Shared Dlls
Thanks


Sure, you could do that using the Assembly.LoadFrom method - but, I
think you would be much better off installing those "shared" libraries
to the GAC as has been suggested. That's what it's for after all :)

--
Tom Shelton [MVP]

Apr 24 '06 #3
Isn't the GAC only for ASP.net programs?

Apr 25 '06 #4
I see that the GAC is on every computer with the framework. But using
the GAC would require these dlls being loading on users computers,
which is not I want to do.

The applications reside on a network and I've been asked to dump all
programs and dlls into one subdirectory, instead of seperate
directories.

It seems easier to maintain if the applications are in seperate
directories but the client does't want to have multiple copies of the
same dlls and doesn't want to have the dlls loaded on peoples machines.

Thanks

Apr 25 '06 #5
Dwight wrote:
The applications reside on a network and I've been asked to dump all
programs and dlls into one subdirectory, instead of seperate
directories.
Why? By whom?
Is the program actually going to execute on the client or on the server?

The GAC isn't the only option for loading shared DLL's, but it is one of
the quicker ones. If you /have/ to keep shared DLL's in a separate
directory (and I really /wouldn't/ recommend it), look at the
"dependentAssembly" entry that you can add to your [client program's]
App.Config file. With this, you can hold other [shared] Assemblies
separately from each client program - but Lord help you if you ever try
to move the shared area. ;-)
It seems easier to maintain if the applications are in seperate
directories but the client does't want to have multiple copies of the
same dlls and doesn't want to have the dlls loaded on peoples machines.


So they're prepared to require the 20+Mb Framework on each PC, but not
to manage the <1Mb of your application's DLL's. Lovely ... :-(

Regards,
Phill W.
Apr 25 '06 #6

Phill W. wrote:
Why? By whom?
Is the program actually going to execute on the client or on the server?
The applications are stored on a file server with a mapped drive. Users
access the applications from around the world. It is easier to maintain
at the server level than the client level.
The GAC isn't the only option for loading shared DLL's, but it is one of
the quicker ones. If you /have/ to keep shared DLL's in a separate
directory (and I really /wouldn't/ recommend it), look at the
"dependentAssembly" entry that you can add to your [client program's]
App.Config file. With this, you can hold other [shared] Assemblies
separately from each client program - but Lord help you if you ever try
to move the shared area. ;-)
Can the path be a relative path?

So they're prepared to require the 20+Mb Framework on each PC, but not
to manage the <1Mb of your application's DLL's. Lovely ... :-(


Managing the framework is much easier. It's done by a global desktop
team. Managing individual applications is done by project teams. If
there is a way to update the GAC by the application itself, it probably
could be done otherwise it looks everything get dumped into one
subdirectory.

I don't understand the reasoning behind the one directory format yet. I
just have to present pros and cons for both situations.

Thanks

Apr 25 '06 #7
Dwight wrote:
The applications are stored on a file server with a mapped drive. Users
access the applications from around the world. It is easier to maintain
at the server level than the client level.
Agreed!
... look at the "dependentAssembly" entry that you can add to your
[client program's] App.Config file.


Can the path be a relative path?


Yes.
If there is a way to update the GAC by the application itself, it
probably could be done otherwise it looks everything get dumped
into one subdirectory.


So its there one application that sits "up-front" from which others are
launched? If so, /that's/ the place to put your GAC-installing code,
which most simply, is 'shell'ing out the GacUtil utility, feeding it a
file of assemblies to add.

Regards,
Phill W.
Apr 26 '06 #8

Phill W. wrote:
So its there one application that sits "up-front" from which others are
launched? If so, /that's/ the place to put your GAC-installing code,
which most simply, is 'shell'ing out the GacUtil utility, feeding it a
file of assemblies to add.


No, there are just multiple apps. All are independent of each other.

Apr 27 '06 #9
adi
hi,

the "best" solution (only my opinion)

1) keep the interfaces of your libs compatible => signatures of public
props+methods
(the best is only 1 version of your lib in gac + publisher policy)

2) deploy your libs in the GAC, but only with publisher policies!
this will redirect your "old" clients to the new versions of your libs
=> convince your client that loading from the GAC is much faster!

loading manualy your libs may not be good for the code maintenance of
your libs ... i dont talk at the moment about deployment and moving
your libs in another (network) directory ....

adrian
if you are bored of "manual working" you can use the shareware
"GacPublish" for advanced deployment of assemblies + activeX .... more
after using goooogle
disadvantage => documentation only in german at this time .... english
version will follow?

May 11 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: JStrummer | last post by:
I have a question regarding paths and the include() statement in PHP. I develop in a Windows environment and will be publishing to a Linux server. I would like to do the following: 1. Setup my...
0
by: Phil | last post by:
I realize this is the php group, but I have a question that recurses back to my php install. My objective is a pure 64 bit shared object installation of php 5.0 on UltraSparc Solaris 9 compiled...
2
by: Ron Bremmers | last post by:
I have a application (.exe) and one assembly (.dll). When the two files are in de same folder, it works fine. But I want to create a subfolder called for example "DLLs". When I move the assembly...
0
by: Arjan van den Noort | last post by:
How to delete a directory (with all containing directories and files) with vb.net if the directory contains long paths ? (just like the dos command: RD /S/Q path) What I want is a routine to...
3
by: KSC | last post by:
Hello, Is there a way to programmatically determine if a directory is shared and if so, what the sharename is? It seems a simple question, but I have been searching and not found the...
25
by: guy | last post by:
i have inherited the following migrated vb6 code (vb2005) but i DONT get the "not all paths return a value" squiggly - is this a 'feature' of on error goto? Private Function CreateFolder(ByVal...
1
by: nuggies | last post by:
I'm developing an ASP.NET 2.0 (C#) application in which I need to display the available shared folders on the server. The shared folder paths need to be in UNC format (i.e., \\servername\share)...
3
by: sva | last post by:
Using C# for an application in which I am working on, I need to display the available shared folders on the computer that's running the application. The shared folder paths need to be in UNC format...
5
by: David T. Ashley | last post by:
I've occasionally had trouble compiling and linking programs that use shared libraries. That never made a lot of sense to me, because I thought the operating system went hunting for the symbols...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.