What additional steps do you take when creating MSI installers for Vista?

I have a very simple installation project that copies three DLLs in the GAC. That is all that is needed. It works fine in XP, but on Vista, it makes a mistake stating that it cannot write the file and check permissions. I am sure that this is due to some kind of senseless exploitation in Vista, but I am not sure how to solve it.

Has anyone else encountered this, and how did you overcome it, if so?

+6
installation windows-vista gac
source share
4 answers

If you use the Windows installer, do you place your assemblies in a special folder Global assembly of caches ? This always worked for me in Vista and Windows 7. There is no need to use GACUtil or anything else, just put the assemblies in the right folder in the installer project.

+1
source share

Are you using gacutil.exe to install the DLL? Or are you just copying files?

In any case, the GAC should be avoided for custom dlls if they are not used by many applications. Store the dll in a closed / local application: it will only cost you disk space and this will allow you to use a simple Xcopy deployment.

+1
source share

I had some kind of (third-party) MSI that won’t install correctly if I don’t force the mode from the very beginning, even if they show a UAC request later in the process.

Troubleshooting ... I assume that you are setting up an administrator account. But is UAC enabled? If so, do you receive an invitation to increase UAC? Try running the MSI package in elevated mode to see if it works. From an elevated command prompt:

msiexec /i setup.msi 
0
source share

Which compiler do you use to create MSI? After the last weekend, I can be an expert in MSI and Vista :)

When using VC2003 or VC2005, different problems arise depending on the version of the compiler.

In 2005, be sure to install the service pack and the Vista service pack. This may solve your problem.

If this fails, you can put them in the GAC using a special action, but beware of the error in 2005 when the no_impersonate bit is set incorrectly. You will have to set this bit yourself using either script or orca.exe.

0
source share

All Articles