Archived

This forum has been archived. Please start a new discussion on GitHub.

Windows registry key for assembly location

When building a Visual Studio project with Ice 3.4.1 and earlier, .NET assemblies are located as file references using the <HintPath> tag in the project file. This causes problems in a team development environment where different machines have Ice installed in different locations (e.g. "Program Files (x86)" on 64-bit Windows vs "Program Files" on 32-bit Windows). Every time the project is opened on a machine with Ice installed in a different location the HintPath will be modified, leading to unnecessary check-ins to source control.

There is a way for .NET assemblies that aren't in the GAC to be registered so that developer tools can locate them using their strong name, regardless of their installed location. This is described on MSDN at
How to: Add or Remove References in Visual Studio

For example, on my 32-bit Windows 7 machine with Ice 3.4.1 installed I have created the registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ZeroC Ice 3.4.1
with the default string (REG_SZ) value:
C:\Program Files\ZeroC\Ice-3.4.1\bin

With the above key HintPath is no longer used in my Visual Studio projects, only the assembly strong names for Ice.dll, IceStorm.dll etc. My colleagues have created similar registry keys on their machines, so projects are not updated unnecessarily.

Could future versions of the Windows installer for Ice or the Visual Studio Add-in create an appropriate registry key for assembly location at development time?