Hello AI Support,
I just purchased your Pro version of AI in June - I've been using the freeware up till then, and decided that I loved the product so much I had to have the Pro version. Keep up the good work ...
Now to my question:
Environment: VS 2003, Win2000 / XP, AI ver 3.0.1
I ran into a situation today which brought up a question of how AI handles refreshing a strong-named Assembly in the .NET Global Assembly Cache (GAC).
I have a strong-named assembly that I built, which I placed into the GAC via an AI MSI file. I ran the install, and it worked as expected on both Win2000 and WinXP. This was about 3 weeks ago - everything worked great, my ASP.NET web application works great, everything is A-OK!
I then make a small fix to my strong-named Assembly. The AssemblyVersion attribute is still the same, I just updated the code and did a Rebuild Solution in the VS 2003 IDE. I then rebuild my AI project to create a new MSI file. Prior to running the new MSI, I go to Add / Remove programs and Remove my previously installed program. I then run the new MSI and successfully install the updated Assembly into the GAC (or so I think). No error or reboot messages were issued by the installer.
I run my ASP.NET web application, expecting to see my fix - it's not there. The application is still using a cached copy of the Assembly in the GAC! I searched my local drive to ensure the .DLL was not anywhere else - only shows up in the C:\WinNT\Assembly\GAC.... folder. I also ensured that "Copy Local = False" is set in the "References" section of the ASP.NET project that uses my Assembly.
It seems like the MSI is not refreshing the GAC correctly with my updated Assembly. I was finally able to get it to work by performing the following steps:
1) uninstalled the original install.
2) manually uninstall the assembly from the GAC via a "GACUTIL.EXE /U AssemblyName" command.
3) ran an IISRESET command to stop / start ASP.NET.
4) ran the MSI to install the updated Assembly.
then it worked!
Is this something where I should force a reboot after the install, or is the MSI not refreshing the GAC correctly? Can someone explain how the Assembly portion of the install works - is AI creating an MSI that uses GACUTIL.EXE to update the GAC?
I also did a Control Panel Remove Program on my install, followed by a "GACUTIL /L AssemblyName" (list) command - it did not remove the Assembly from the GAC after the program was removed. I also rebooted, did the GAC list command again - the assembly is still in the GAC.
Thanks - Todd