File check for .NET assembly in GAC?

Mar 9, 2009 at 6:53 PM
A required component for my app will be the Microsoft Interop Forms Toolkit 2.0a. I used the VS2005 bootstrapper package as a model to build a downloadable component. The package has an "assembly" check in it, which does not seem to be supported directly in dotNetInstaller.

I tried doing a file check starting with "#WINDOWSPATH\assembly". However, this technique fails when the setup is run on a terminal server. The #WINDOWSPATH returns a local WINDOWS folder for the user (c:\documents and settings\Administrator\WINDOWS) instead of what I really wanted (C:\WINDOWS).

I changed the path to start with "#SYSTEMPATH\..\assembly", and this seems to be working on a terminal server. Is there a better way for me to check that an assembly is installed in the GAC? Should dotNetInstaller be using GetSystemWindowsDirectory instead of GetWindowsDirectory?

Mar 9, 2009 at 8:23 PM
Looks like you're right. I think there're 2 feature requests here:

  1. Add a system windows directory variable available in the installer for checks. This should be the result of GetSystemWindowsDirectory.
  2. Add a specific check for a .NET assembly in the GAC.

I can do (1) quickly unless you want to :)

Mar 10, 2009 at 5:03 PM
I've added #SYSTEMWINDOWSPATH constant resolved in paths. Give it a shot in the last beta build: