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

How to efficiently 'share' assemblies between multiple dev projects

I have recently spun off a new version of my application for a different
project and plan to do some more shortly. I have essentially split it into
three parts:

1) Common Company Framework (small/very stable) stored in drive/framework
2) Common Application Framework (large/stable) stored in drive/common
3) New Applications / Skins (small/unstable) stored in drive/project

Both my projects are still under some semblance of development so I wanted
to be able to essentially work on the framework and common objects as need
be. I'm the sole developer so I'm not worried about stomping on anybodies
toes. I know there will be re-work to each as I tweak the middle layer and
even the framework. As I see fit I want to add/remove from the common layer
to make sure it remains common and shared and doesn't have any 'application
specific' code in it.

I have gone ahead and setup my solution to contain the projects for all the
bits and pieces and then done references to them all. The problem occurs
when I rebuild solution 3 I sometimes come up with the following error.

"Error: The dependency 'eProgramMgr.DataAccess.Core, Version=1.0.1999.24143,
Culture=neutral' in project 'eProgramMgr.Modules.DataExtract' cannot be
copied to the run directory because it would conflict with dependency
'eProgramMgr.DataAccess.Core, Version=1.0.2004.16500, Culture=neutral'.
"

I'm wondering what is the most effective way to manage this through visual
studio? Should I have two copies open, one with the common and framework
and then a 2nd with only the new app but only using references and not
having the projects open? When do I set the reference's copy to local
property to false?

thx

jack
Nov 17 '05 #1
6 1676
Are you referencing the .dll directly? I think you should use a single
solution and reference the projects rather than the .dll's directly.

Here is a link to the MS Pattern and Practices article about Team
Development. I know you said you are coding alone, but the article
describes in detail about Project and file references. It might help
you.

http://tinyurl.com/jg5a

Nov 17 '05 #2
Thanks for you quick reply - the article was very helpful - I was on the
right approach earlier and going to a file reference is bad (I think). I
will try restructuring everything again but I'm still worried about the
versioning errors I was getting.
"Chris Dunaway" <du******@gmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Are you referencing the .dll directly? I think you should use a single
solution and reference the projects rather than the .dll's directly.

Here is a link to the MS Pattern and Practices article about Team
Development. I know you said you are coding alone, but the article
describes in detail about Project and file references. It might help
you.

http://tinyurl.com/jg5a

Nov 17 '05 #3
Sometimes you have no choice but to use file references, namely when
you are using third party libraries.

As to the versioning errors, when you have all the projects in the
solution, they will be built in the correct order and the errors should
go away.

Nov 17 '05 #4
One more thing, in your Assembly.vb file you should not use the
automatic versioning. In other words don't use 1.0.* for your version
number. You should explicitly set all version numbers yourself.

According to Jeffrey Richter's book, "Applied Microsoft .Net Framework
Programming", using the auto versioning can cause just the versioning
errors you were getting.

Nov 17 '05 #5
I think that is my exact problem. - thanks so much

"Chris Dunaway" <du******@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
One more thing, in your Assembly.vb file you should not use the
automatic versioning. In other words don't use 1.0.* for your version
number. You should explicitly set all version numbers yourself.

According to Jeffrey Richter's book, "Applied Microsoft .Net Framework
Programming", using the auto versioning can cause just the versioning
errors you were getting.

Nov 17 '05 #6
Chris,

I am still having issues. I got rid of all the versioning issues but my 2nd
solution isn't using the updates I create in the shared assemblies.

This is my setup

Original Solution /w projects/assemblies:

App (Starting Project)
AppFrameWork
SharedAssemblyA
SharedAssemblyB
SharedAssemblyC
SharedAssemblyD

I had orignally tried creating a new Solution B and had run into the issues
mentioned in this thread so I tried a SaveAs for SolA to SolB and replaced
the App specific assemblies

AppB (Starting Proj)
AppFrameWorkB
SharedAssemblyA
SharedAssemblyB
SharedAssemblyC
SharedAssemblyD

I created all the references I need in AppB and the application runs. But
when I make changes to SharedAssembly B they don't get picked up when I run
the app nor do debug breakpoints. I can do a rebuild and see it update/fix
compiler errors. I tried setting the project dependencies on the AppB to
include all the assemblies but it still doesn't seem to do much.

If I go back to the original solutionA and compile then I pickup the
changes.

Any thoughts?

"Chris Dunaway" <du******@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
One more thing, in your Assembly.vb file you should not use the
automatic versioning. In other words don't use 1.0.* for your version
number. You should explicitly set all version numbers yourself.

According to Jeffrey Richter's book, "Applied Microsoft .Net Framework
Programming", using the auto versioning can cause just the versioning
errors you were getting.

Nov 17 '05 #7

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

Similar topics

3
by: AARON PECORARO | last post by:
I need to split apart my web application into multiple projects to allow it to be distributed in parts, but all of the projects need to work together (ie. they need to share session information)....
12
by: A-PK | last post by:
Anyone know how to breakdown every modules into different assemblies and refernces. Hence, to repair problematic module, only that particular module needed to be recompiled. or any place...
1
by: Jimi | last post by:
(Sorry for the repost, but I thought maybe I'd have better luck this time) I'm working on a utility to provide an overview of one's .NET projects and one of the things I want to display is...
2
by: RoveR | last post by:
Hi, I have a couple of assemblies containing ServicedComponents-derived classes which will be registered into the same COM+ Application hence I want them to have the same ApplicationIDAttribute,...
2
by: TaeHo Yoo | last post by:
Hi all, I have a solution which contains multiple projects. Those multiple projects should share the same session. For example, users login, create the session for users then these session...
7
by: thechaosengine | last post by:
Hi all, Can anyone tell me if it is advisable (or even possible) to define a namespace across 2 or more assemblies? For example, consider the namespace SampleApplication.Data.Providers ...
4
by: Quentin Huo | last post by:
Hi: I have two web sites in my IIS. I want them to share or use one set of classes that I created, because they have same functions that the classses provide. And maybe in the future I will...
1
by: Dave Anson | last post by:
What is the recommended practice for referencing assemblies in a project from other solutions? I am using Visual Studio 2005 Team System. I have several assemblies in another solution which will...
3
by: bbrewder | last post by:
I am interested in hearing how other people have handled sharing resources in multiple projects (for example, a save icon). We have a product that has many forms within many projects. Many of...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
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...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

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.