Sie sind auf Seite 1von 3

MSI Packaging Best Practices

1. Capture the application on Installshield template.

2. Never use hardcoded paths in MSI/MST tables.

3. Ensure that any junk value is not present in the registry table.

4. Check for entries made by the application in Services and Host files (present in
system32\drivers\etc. folder)

5. Any files going to User profiles should have an HKCU key as its key path.

6. Any + in registry table can be changed to * ( this is not applicable for MM) Do this in
.WSI file

7. Component rules are to be checked. [HKCU + HKCR], [HKLM + HKCU], [HKCU + Files] in
same component is not acceptable. Only exception here is for the component going to user
profile which will have [files + HKCU].

8. [INSTALLDIR] property can be used for the installdir where ever possible instead of

9. Check for unnecessary launch conditions in vendor MSIs.

10. Use MSI Table wherever possible. Avoid vbscripts/custom actions to the maximum

11. Kernel drivers are never captured by Wise. Always check for Kernel drivers for any
application, in the system registry/ in a Wise Install Manager or Master capture. Install
these kernel drivers using Service install table through the
MSI(Refer \\\KnowledgeDB\ ‘Client name’\Standards\HP Installing a Kernel

12. Use Service Control table for starting and stopping services.

13. Use HPTerminateProcess custom action for terminating processes.

14. Use [!FileKey] in place of short paths to files in registry and inifile tables.

15. Check for files/folders getting installed to Administrator’s user profile and remove
Administrator from directory table. Get the files / folders installed to all the users on a
per user basis with the help of a HKCU registry key.

16. Never hardcode inside a VBScript custom action. Use properties or environment
MSI Packaging Best Practices
17. Use Date and Time properties where ever possible if application specific date or time of
install is captured.

18. .hlp, .chm, .txt files installed to systemfolder need not be permanent. Just Share them.

19. Files installed to System16Folder should be permanent.

20. For transforms, do not move files/registry keys between components without checking
the component conditions. Ensure that the integrity of component conditions are maintained
in the MST also.

21. Have the file and its related registration information present in the same component.

22. Add / Remove programs icon should be set as per the source. If source does not put an
ARP icon, set the main shortcut exe icon.

23. Check for _Validation table errors in ICE validation

24. .xla files [excel addins] should be placed in c:\program files\microsoft office\office
10\library. If xla is in installdir then do not add the file to above location.

25. In case of environment variable, If application is putting shortpath ie

[c:\Progra~1\XXX~1\XXX.exe], retain the same in MSI.

26. If Class table entries are present check for Warning / Errors in System Event Viewer
once you test the application functionality.

27. Click all the executables in the applications in user mode and make sure they behave as
per source in administrator mode.

28. Click all the executables in the applications in before uninstall so that you are aware
about the processes that need to be killed.

29. Check for MSI / MST repair in user mode. Make sure transforms created for vendor
MSI repair correctly.

30. It should be a clean uninstall. Any run time file created by the application should be
removed. Only user created and saved files can be retained.

31. Make sure that dependency applications and your application work in Sync during your
application install. Make sure that dependency applications or the build applications are not
tampered after uninstall.

32. Using Installrite tool make sure that there are no deleted registry keys.

33. After MSI uninstall, restart the machine and click on Search Option in Windows. Make
sure it works as before.
MSI Packaging Best Practices
34. Document all your efforts and observations and new learning.