Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Problem in deleting shortcut created by is package


5 replies to this topic

Amarjeet

Amarjeet
  • Full Members
  • 77 posts

Posted 22 January 2009 - 11:14

Hi ,

I have created a basic MSI installshield as a full product. This product installs some shortcuts on desktop. Now i have created a patch for this installation. My requirement is this patch should remove all shortcuts created by main installation.
I am unable to do this by modifying the component in which original shortcuts included. Also custom action is not working. Perhaps i am doing something wrong.

I am facing another problem. With original msi package i have installed a dll without self regitration. With patch install i want to register this dll by regsvr32.
How to do this by custom action / modifying components.

Thanks in advance

Amarjeet tongue.gif

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 22 January 2009 - 16:55

If the shortcut is in a separate component, you could set that component's condition to 0 and "re-evaluate condition" to yes.
Otherwise you could remove the shortcut from your project and add a row to the RemoveFile table (in Direct Editor) to delete the .lnk file.

Did you try extracting the self-reg information from the file? That's prerferred over classic self-registration. Anyway the component must be reinstalled. Generate a log to see if it is set to be reinstalled. Also watch out for SELMGR messages in the log.

Amarjeet

Amarjeet
  • Full Members
  • 77 posts

Posted 23 January 2009 - 13:50

Hi Stefan,

Thanks for reply. I was still facing problems in doing my two tasks

1) About shortcuts : The shortcuts are not stored in indivisual components. Shortcuts are installed along with their respective destination files. IF i remove this whoel component my files also get lost. I did not understood "Otherwise you could remove the shortcut from your project and add a row to the RemoveFile table (in Direct Editor) to delete the .lnk file." . I did tried to remove the shortcuts by putting them in remove file table. But they do not get removed. You did not specified from which installshiled i need to remove shortcuts(first half of your statement) also in which IS package i need to edit remove file. Please explain

2) About regitering dll : Its not possible to extact com data for this ddl. The only way is by regasm. In original is i have not marked this file for self register. That product is already delivered. Now i need to register this file in first patch i am tryingto deploy. When i select self register for this file in patch i get error "The ISSelfReg table contains new content. Therefore, if you are packaging this upgrade as a patch, you will not be able to make it an uninstallable patch."
So in this case my patch will become uninstallable. I want patch to be installable. Can you please expalin how to reinstall this compoent. I can carry out changes in original MSI package. As said by you if i say condition = 0 the component gets uninstalled. Is there any condition to forcefully install a component while installing patch.

Thanks in advance


Amarjeet

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 23 January 2009 - 16:44

1: Keep in mind that on NT based systems there is the concept of per-machine and per-user shortcuts. Depending upon the value of ALLUSERS in your MSI you could have the shortcut installed to C:\Documents and Settings\All Users\Start Menu or C:\Documents and Settings\%USERNAME%\Start Menu. Check where your shortcut is located, and report back. Then it is easier to offer better advice.

2: This sounds pretty hairy, I wouldn't go for a patch but a reinstall in your case. If the file is only registerable by regasm this means the file is a .NET assembly that needs to be registered for COM interop. You are correct that setting self register won't help in this case. Instead set the COM Interop property to Yes.
Regards
-Stein Åsmul

Amarjeet

Amarjeet
  • Full Members
  • 77 posts

Posted 26 January 2009 - 13:36

Hi

I would like to clarify some points.

1) The shortcuts are placed on Allusers\Desktop folder. With original MSI the shortcuts were installed alongwith their respective files in program files folder in one component.
Now with patch i just want to remove the shortcuts from desktop but don't want to remove the files installed in program files folder. Please advise best method to do this either custom action OR modifying component properties.

2) I need to self register this file, as com interop is not working. This is classic C++ compiled file and not a .net assembly. I am trying this by doing through custom action but unable to do so. Can you advice correct settings for cuctom action.

Thanks in advance

Amarjeet

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 January 2009 - 14:57

First, you need to take the shortcut out of your InstallShield project, so that it doesn't get created anymore.
Second, to delete the shortcut from the allusers desktop you should add a row to the RemoveFile table for the .lnk file. You say you did this but it didn't delete the shortcut? Please generate a log file to check the paths and the result codes. Maybe there's something wrong with the row you added to the RemoveFile table.