Welcome Guest Search | Active Topics | Members | Log In | Register

Changing References based on compile configuration Options · View
Alex
Posted: Tuesday, April 22, 2008 7:03:50 AM


Rank: Guest
Groups: Guest

Joined: 9/17/2007
Posts: 11,670
Points: -1,200
Date parsed: 22/04/2008 07:03:50
Date: Tue, 22 Apr 2008 14:03:50 -0700 (PDT)

Hi,

We have a development shop of about 4 programmers, and our current
project is using VS 2005. My question, is it possible to change the
References based on the Compile configuration? Example, we can change
where the DLL's are compiled to, but how can the Reference location
change so we can tell the app where to pull the DLL's from?

For example, if we compile to c:\development\dlls for Debug and a UNC
network path for Release, I want all our projects to pull referenced
DLLs from c:\development\dlls when in Debug mode and the UNC Path if
in Release mode. This way we can run the application completely
locally or from the DLL's on the server as needed.

Or does anyone else have a solution to make this work? It seems if
one programmer is testing something and compiles with a bug, it'll
throw off all other coders who are writing code based on that DLL.
Also if someone has the application running for testing, the DLL's are
locked so building isn't even possible.

Just trying to find some simple way for each developer to run the
project wholely on his/her workstation as needed as to not interfere
with others work while testing.

Thanks --

Alex
Tom Dacon
Posted: Tuesday, April 22, 2008 7:33:50 AM


Rank: Guest
Groups: Guest

Joined: 9/17/2007
Posts: 11,670
Points: -1,200
Date parsed: 22/04/2008 07:33:50
Date: Tue, 22 Apr 2008 14:33:50 -0700

We haven't found a way to set VS up to do this by itself, but we have a
tolerable workaround. The way we've done this in the shop I work in is this:

We've given VS2005 access to the directory to pull our library dll's are
collected from, by creating a registry key under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\

Suppose I name the subkey AppAssemblies (it can be anything): the key is
then:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\AppAssemblies

In the file system, I might have a directory structure like this:

C:\AssemblyLibrary
Debug
Release

The default value of the key contains the fully-qualified file system path
of the directory that holds the assemblies, which would be
C:\AssemblyLibrary\Debug
when I'm doing debug builds.

To change things so that builds resolve against the release builds
directory, I'd merely change the registry key's default value to:
C:\AssemblyLibrary\Release

It's still kind of clumsy, but we haven't come up with anything better.

Tom Dacon
Dacon Software Consulting



"Alex" <samalex@gmail.com> wrote in message
news:19f32e9d-b49c-4d39-8bf1-b0f60ab63184@a22g2000hsc.googlegroups.com...
> Hi,
>
> We have a development shop of about 4 programmers, and our current
> project is using VS 2005. My question, is it possible to change the
> References based on the Compile configuration? Example, we can change
> where the DLL's are compiled to, but how can the Reference location
> change so we can tell the app where to pull the DLL's from?
>
> For example, if we compile to c:\development\dlls for Debug and a UNC
> network path for Release, I want all our projects to pull referenced
> DLLs from c:\development\dlls when in Debug mode and the UNC Path if
> in Release mode. This way we can run the application completely
> locally or from the DLL's on the server as needed.
>
> Or does anyone else have a solution to make this work? It seems if
> one programmer is testing something and compiles with a bug, it'll
> throw off all other coders who are writing code based on that DLL.
> Also if someone has the application running for testing, the DLL's are
> locked so building isn't even possible.
>
> Just trying to find some simple way for each developer to run the
> project wholely on his/her workstation as needed as to not interfere
> with others work while testing.
>
> Thanks --
>
> Alex


Tom Dacon
Posted: Tuesday, April 22, 2008 7:37:40 AM


Rank: Guest
Groups: Guest

Joined: 9/17/2007
Posts: 11,670
Points: -1,200
Date parsed: 22/04/2008 07:37:40
Date: Tue, 22 Apr 2008 14:37:40 -0700

I should also have mentioned that all our assembly references are Copy
Local, so we never lock anything in the assembly libraries while running.

Tom

"Tom Dacon" <tdacon@community.nospam> wrote in message
news:%23nI1LCMpIHA.672@TK2MSFTNGP02.phx.gbl...
> We haven't found a way to set VS up to do this by itself, but we have a
> tolerable workaround. The way we've done this in the shop I work in is
> this:
>
> We've given VS2005 access to the directory to pull our library dll's are
> collected from, by creating a registry key under
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\
>
> Suppose I name the subkey AppAssemblies (it can be anything): the key is
> then:
>
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\AppAssemblies
>
> In the file system, I might have a directory structure like this:
>
> C:\AssemblyLibrary
> Debug
> Release
>
> The default value of the key contains the fully-qualified file system path
> of the directory that holds the assemblies, which would be
> C:\AssemblyLibrary\Debug
> when I'm doing debug builds.
>
> To change things so that builds resolve against the release builds
> directory, I'd merely change the registry key's default value to:
> C:\AssemblyLibrary\Release
>
> It's still kind of clumsy, but we haven't come up with anything better.
>
> Tom Dacon
> Dacon Software Consulting
>
>
>
> "Alex" <samalex@gmail.com> wrote in message
> news:19f32e9d-b49c-4d39-8bf1-b0f60ab63184@a22g2000hsc.googlegroups.com...
>> Hi,
>>
>> We have a development shop of about 4 programmers, and our current
>> project is using VS 2005. My question, is it possible to change the
>> References based on the Compile configuration? Example, we can change
>> where the DLL's are compiled to, but how can the Reference location
>> change so we can tell the app where to pull the DLL's from?
>>
>> For example, if we compile to c:\development\dlls for Debug and a UNC
>> network path for Release, I want all our projects to pull referenced
>> DLLs from c:\development\dlls when in Debug mode and the UNC Path if
>> in Release mode. This way we can run the application completely
>> locally or from the DLL's on the server as needed.
>>
>> Or does anyone else have a solution to make this work? It seems if
>> one programmer is testing something and compiles with a bug, it'll
>> throw off all other coders who are writing code based on that DLL.
>> Also if someone has the application running for testing, the DLL's are
>> locked so building isn't even possible.
>>
>> Just trying to find some simple way for each developer to run the
>> project wholely on his/her workstation as needed as to not interfere
>> with others work while testing.
>>
>> Thanks --
>>
>> Alex
>
>


Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

YAFPro Theme Created by Jaben Cargman (Tiny Gecko)
Powered by Yet Another Forum.net version 1.9.1.1 (NET v2.0) - 9/10/2007
Copyright © 2003-2006 Yet Another Forum.net. All rights reserved.
This page was generated in 0.093 seconds.