473,378 Members | 1,578 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,378 software developers and data experts.

.DLL hell II - The Evil Empire Strikes Back

I can't figure out how this side-by-side assembly stuff it
supposed to work.
I have a stack of four assemblies
A has no references
B references A & C
C References A & B
D References A, B and C

During a built I invariably end up with the wrong
assemblies in the final bin directory even though I have
hard-coded the version numbers for each component to avoid
breaking the build. Worse when I copy the correct
versions off the assemblies for A, B and C to the bin
directory for D and then open D in Visual Studio it,
without warning, copies the wrong versions of the files
back to the bin directory. I've wasted weeks with this
stuff - It makes figuring out the cause of problems really
rather tricky. And its not even a terribly complicated
object stack. How do I build it?

Jul 21 '05 #1
3 2005
I hope this is a typo:
B references A & C
C References A & B
B references C and C reference B, cannot be done in .NET. As each needs to
be compiled before the other...

I normally have a single solution that has 4 projects A,B,C,D when I build
the solution all the projects get built, and the correct versions of the
dlls are in the correct bin folders. No manual intervention required. I have
solutions with 8 to 12 class libraries each using this method.

Within VS.NET are you referencing the DLL or the project?

Hope this helps
Jay

".DLL hell II - The Evil Empire Strikes Back" <a@b.c> wrote in message
news:0d****************************@phx.gbl... I can't figure out how this side-by-side assembly stuff it
supposed to work.
I have a stack of four assemblies
A has no references
B references A & C
C References A & B
D References A, B and C

During a built I invariably end up with the wrong
assemblies in the final bin directory even though I have
hard-coded the version numbers for each component to avoid
breaking the build. Worse when I copy the correct
versions off the assemblies for A, B and C to the bin
directory for D and then open D in Visual Studio it,
without warning, copies the wrong versions of the files
back to the bin directory. I've wasted weeks with this
stuff - It makes figuring out the cause of problems really
rather tricky. And its not even a terribly complicated
object stack. How do I build it?

Jul 21 '05 #2
C,
Refer back to your original post you stated:
I can't figure out how this side-by-side assembly stuff it supposed to work.
I have a stack of four assemblies
A has no references
B references A & C
C References A & B
D References A, B and C

To compile B, you will need to have C compiled.
To compile C, you will need to have B compiled.
Given the problem .NET has with cross referencing of
classes within objects is my only option to have a
separate assembly containing the application exceptions I
need which both C and D can reference? IE Instead of having the Exceptions in Assembly B, I would consider having an
Assembly E for the Application Exceptions. Which is a variation of the
Seperated Interface Pattern.

http://www.martinfowler.com/eaaCatal...Interface.html

Although it is not as common, I would consider having Assembly B publish an
Interface that identifies 'custom exceptions of one of the types found in
C'. In other words a single Interface in Assembly B, that all of the
exceptions in C implement, this interface would not need to have any
members. Which is another variation of the Seperated Interface Pattern.

Hope this helps
Jay

"C" <a@b.c> wrote in message news:0b****************************@phx.gbl... No it isn't a typo. Its what I want to achieve:
A) Is an analyser component
B) Is a logger component
C) Is a Server component. C may throw one of several
application exceptions, which have some additional
properties, exposed on them.
These are logged by the logger which may additionally
alert ops to the fact that there is a major problem. It
does this by looking to see if the type of Exception it
has been thrown is a custom exception of one of the types
found in C and then interrogating some of the additional
properties.

Given the problem .NET has with cross referencing of
classes within objects is my only option to have a
separate assembly containing the application exceptions I
need which both C and D can reference? IE
A Is the Analyser Component and has no references
B is the Application Exception Class and has no references
C Is the logger and references B
D Is the Server and references A, B and C
?
-----Original Message-----
I hope this is a typo:
B references A & C
C References A & B


B references C and C reference B, cannot be done in .NET.

As each needs to
be compiled before the other...

I normally have a single solution that has 4 projects

A,B,C,D when I build
the solution all the projects get built, and the correct

versions of the
dlls are in the correct bin folders. No manual

intervention required. I have
solutions with 8 to 12 class libraries each using this

method.

Within VS.NET are you referencing the DLL or the project?

Hope this helps
Jay

".DLL hell II - The Evil Empire Strikes Back" <a@b.c>

wrote in message
news:0d****************************@phx.gbl...
I can't figure out how this side-by-side assembly stuff

it supposed to work.
I have a stack of four assemblies
A has no references
B references A & C
C References A & B
D References A, B and C

During a built I invariably end up with the wrong
assemblies in the final bin directory even though I have
hard-coded the version numbers for each component to avoid breaking the build. Worse when I copy the correct
versions off the assemblies for A, B and C to the bin
directory for D and then open D in Visual Studio it,
without warning, copies the wrong versions of the files
back to the bin directory. I've wasted weeks with this
stuff - It makes figuring out the cause of problems really rather tricky. And its not even a terribly complicated
object stack. How do I build it?

.

Jul 21 '05 #3
C
It does - thank you very much.
-----Original Message-----
C,
Refer back to your original post you stated:
>> I can't figure out how this side-by-side assembly stuff
it
>> supposed to work.
>> I have a stack of four assemblies
>> A has no references
>> B references A & C
>> C References A & B
>> D References A, B and C
To compile B, you will need to have C compiled.
To compile C, you will need to have B compiled.
Given the problem .NET has with cross referencing of
classes within objects is my only option to have a
separate assembly containing the application exceptions
I need which both C and D can reference? IE

Instead of having the Exceptions in Assembly B, I would

consider having anAssembly E for the Application Exceptions. Which is a variation of theSeperated Interface Pattern.

http://www.martinfowler.com/eaaCatal...ratedInterface. html
Although it is not as common, I would consider having Assembly B publish anInterface that identifies 'custom exceptions of one of the types found inC'. In other words a single Interface in Assembly B, that all of theexceptions in C implement, this interface would not need to have anymembers. Which is another variation of the Seperated Interface Pattern.
Hope this helps
Jay

"C" <a@b.c> wrote in message news:0b0901c377b5$38f2fba0

$a*******@phx.gbl...
No it isn't a typo. Its what I want to achieve:
A) Is an analyser component
B) Is a logger component
C) Is a Server component. C may throw one of several
application exceptions, which have some additional
properties, exposed on them.
These are logged by the logger which may additionally
alert ops to the fact that there is a major problem. It
does this by looking to see if the type of Exception it
has been thrown is a custom exception of one of the types found in C and then interrogating some of the additional
properties.

Given the problem .NET has with cross referencing of
classes within objects is my only option to have a
separate assembly containing the application exceptions I need which both C and D can reference? IE
A Is the Analyser Component and has no references
B is the Application Exception Class and has no references C Is the logger and references B
D Is the Server and references A, B and C
?
>-----Original Message-----
>I hope this is a typo:
>
>> B references A & C
>> C References A & B
>
>B references C and C reference B, cannot be done
in .NET. As each needs to
>be compiled before the other...
>
>I normally have a single solution that has 4 projects

A,B,C,D when I build
>the solution all the projects get built, and the
correct versions of the
>dlls are in the correct bin folders. No manual

intervention required. I have
>solutions with 8 to 12 class libraries each using this

method.
>
>Within VS.NET are you referencing the DLL or the
project? >
>Hope this helps
>Jay
>
>".DLL hell II - The Evil Empire Strikes Back" <a@b.c>

wrote in message
>news:0d****************************@phx.gbl...
>> I can't figure out how this side-by-side assembly stuff it
>> supposed to work.
>> I have a stack of four assemblies
>> A has no references
>> B references A & C
>> C References A & B
>> D References A, B and C
>>
>> During a built I invariably end up with the wrong
>> assemblies in the final bin directory even though I

have >> hard-coded the version numbers for each component to

avoid
>> breaking the build. Worse when I copy the correct
>> versions off the assemblies for A, B and C to the bin
>> directory for D and then open D in Visual Studio it,
>> without warning, copies the wrong versions of the files >> back to the bin directory. I've wasted weeks with this >> stuff - It makes figuring out the cause of problems

really
>> rather tricky. And its not even a terribly complicated >> object stack. How do I build it?
>>
>
>
>.
>

.

Jul 21 '05 #4

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

Similar topics

0
by: CHURCH MOLESTED CHILDS | last post by:
http://www.counterpunch.com/jacobs05072004.html UnAmerican? I Wish That It Were So By RON JACOBS Un-American? I can't help but smirk every time I see this quote from Mr. Rumsfeld describing...
22
by: Jim Hubbard | last post by:
I am reposting a portion of a thread that I am involved in under a new topic because it seems that there are still people that believe the whole "DLL Hell" myth. I hope I can shed some light on...
2
by: Nad | last post by:
Hello, dll hell has been eliminated in .NET using assembly versioning. I am new in .NET and would like to know if there is any dll-hell-equivalent in .NET Windows or Web development...
14
by: vicky | last post by:
SUMMARY: THREE YEARS of and continuing MENTAL TORTURE, TERRORISM, SADISM and BLATANT human rights violations by FBI SADISTS and PERVERTS. Please SAVE this post on your hard disks or email...
1
by: Swami Tota Ram Shankar | last post by:
"Bob Weigel" <dontuwish@nothing.net> wrote in message > > While George Bush, is the epitome of evil, racism, and uncompassionate > > conservatism, Kerry is either deluded, very deluded, or...
41
by: Mark R. Dawson | last post by:
I have never used a goto statement in my code, one of the first things I was told in my software classes a number of years ago was "goto statements are evil and lead to spagetti code - do not use...
3
by: .DLL hell II - The Evil Empire Strikes Back | last post by:
I can't figure out how this side-by-side assembly stuff it supposed to work. I have a stack of four assemblies A has no references B references A & C C References A & B D References A, B and C...
3
by: comp.lang.php | last post by:
I have a counter that evokes the "Three Strikes You're Out" rule.. if you make more than N mistakes it auto-resets to avoid flooding $_SESSION with attempt after attempt, etc. However, the...
7
by: VK | last post by:
In commemoration of 8th Google anniversary my present to Mr.Cornford :-) <http://groups.google.com/group/mozilla.dev.tech.svg/browse_frm/thread/5dabd0138008a9ec/> (useful to read to anyone who...
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...
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...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

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.