0

I use IShellLink to get the target path of a shortcut. Most of the time it is good, but I am missing some of the files once in a while. I read somewhere that the Integrity Priority could be an issue. See Integrity Priority here - http://msdn.microsoft.com/en-us/library/bb625960.aspx My question is - if I change the integrity priority of all the dll on my development machine, then build an install build with these dll's, and then move the install-build to another machine and install the program there; will the medium integrity priority I set persist on the new machine. Or I have to write a script to change the integrity priority after I install the program.
I am hoping I dont need to do anything after the install.

dysonfree
  • 108
  • 3
  • 11

1 Answers1

0

I don't know the IShellLink functionality very well so I'll try to address this from the Windows Installer point of view. ( Assuming that by referencing the installshield tag that you are using MSI. )

MSI uses the Shortcut table and if on Win7/Server2008R2 the ShortcutProperty Table. This article Application User Model IDs (AppUserModelIDs) has a section that says:

In the System.AppUserModel.ID property of the application's shortcut file. A shortcut (as an IShellLink, CLSID_ShellLink, or a .lnk file) supports properties through IPropertyStore and other property-setting mechanisms used throughout the Shell. This allows the taskbar to identify the proper shortcut to pin and ensures that windows belonging to the process are appropriately associated with that taskbar button. Note The System.AppUserModel.ID property should be applied to a shortcut when that shortcut is created. When using the Microsoft Windows Installer (MSI) to install the application, the MsiShortcutProperty table allows the AppUserModelID to be applied to the shortcut when it is created during installation.

The MsiShortCutProperty table is pretty new and I haven't really had any developers come to me wanting to leverage it yet so I haven't dug into the details of what all the various properties that can be set are. However, I suspect this is the road you need to go down.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
  • I am sorry I confused you. I should not have mentioned my initial problem of shortcuts. My question was if I set the integrity priority of the dlls that I need for the install build, will these settings persist on the machine that I install the program to? Or how can I check the integrity priority of the dll on the target-machine? I can run the program to see if it works properly, but since the original problem is intermitent, it would be very tedious. – dysonfree Aug 14 '12 at 14:47
  • So in googling, can you set the prioerity on dll's or is it only exe's? I got the impression that it's a process thing although I don't really know the space at all. The article you referenced an exe being updated. I don't think it would persist across the install and that a custom action would have to be called to update the attribute. – Christopher Painter Aug 14 '12 at 14:56
  • I did set the IP on the dlls and move the dlls to the target-machine, then registered the dlls and ran the program. It seems to fix the original problem. Now I have to re-build the msi with the "new" dlls. I think the safest path is to redo the IP setting after the MSI install on the target-machine. I agree with you. Thanks. – dysonfree Aug 14 '12 at 15:01