user628661
user628661

Reputation: 128

Project management (sort of)

We have a big project(solution) with several smaller projects using some common assemblies (no GAC). Every time a project is changed and has to be tested, all files in the solution must be deployed in a testing location, separate from the main branch. I would like to deploy only the files that have changed and use the ones not changed from the main branch. Something like this:

[MainBranchFolder]

So, Branch1 contains only File2.dll. When the programs runs, it will look for any dlls in current folder and, if not found, will look into Parent folder. I know a solution for this problem that requires some code changes but I wonder if something like this can be achieved using configuration only

[Edit] I see several ppl suggested some source code management. However this is not a source code issue, it's a binary code issue. MainBranch in my example is not source code, is a folder with all the compiled assemblies (exe and dll) in my projects

Upvotes: 0

Views: 107

Answers (3)

JFish222
JFish222

Reputation: 1026

All of the responses seem to have a Code Versioning theme, which I'm seeing is not what you're looking for.

I ran into a different, but potentially similar situation:

3 Applications, each requires the same librar(ies). Publishing the primary application requires the other 2 to be updated. GAC was not an option (don't ask!)


Solution 1: I know where it is, just give me the damn thing! (Which also let me store all kinds of useful common settings dictated by the master installed program.)


My solution was to maintain a known registry key:

Part 1: The registry Entry

HKLM\Software\FoobarInternational\CommonLibrary1 [String]

In CommonLibrary1 I stored the path to the common DLL's.

Part 2: The common "find my dll" library

Think plugin architecture - it looks in current dir for dll, and if fails, checks the the provided registry key for correct location.


Solution 2: Taking a walk


In a similar manner to solution 1, the library starts in its current directory, looks for the DLL, and if its not found, checks 1 directory higher.


Here are a few links to help you with each:

OR depending on what you need . .

string directoryName = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;  

Upvotes: 0

Matt
Matt

Reputation: 6050

with the Team Foundataion Server, you can do that with the customized build.

Upvotes: 1

poy
poy

Reputation: 10507

It sounds like you could use some Software Configuration Management (SCM)!

There are many choices out there and a quick Google search will reveal plenty. My preference is definately GIT.

Check out: http://git-scm.com/

Upvotes: 1

Related Questions