After turning on MSI logging, I found that my issue is more complicate.


The shortcut is created for a file installed in ALLUSER ( Per Machine) mode, so 
I must set Advertise="yes" on the shortcut as shown below. This turns out be 
the problem later. 

<Component Id="SomeApp" Guid ="Guid">
        <File Id ="SomeApp_exe"  Name ="SomeApp.exe" Source 
="$(var.MSIBuildDir)Signed\EXE\SomeApp.exe">
          <Shortcut  Id="SomeAppShortcut" Directory ="BLAHProgramMenuFolder" 
Name="SomeApp" Advertise="yes" Icon="SomeAppIcon.exe" DisplayResourceDll 
="[!SomeApp_exe]" DescriptionResourceDll ="[!SomeApp_exe]" >
            <Icon Id="SomeAppIcon.exe" SourceFile 
="$(var.MSIBuildDir)Signed\EXE\SomeApp.exe"/>
          </Shortcut >
      </File>
</Component>

The above worked like charm, until i have to place a uninstall shortcut for the 
product, like the code below


      <Component Id ="BLAHUninstall" Guid 
="0E588613-C67B-402A-9F50-BDF4A833F420">
        <RegistryValue Id="BLAHUninstaller"
  Root="HKCU"
  Key="SOFTWARE\MyCompany\BLAH"
  Value="BLAHUnistall" Type="string" Name ="BLAHUninstall" KeyPath ="yes"/>
        <Shortcut Id="UninstallBLAH"
  
Name="Uninstall BLAH"
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]"
Directory="BLAHProgramMenuFolder"
Description="Uninstalls BLAH"  />
  
      </Component>




Now, because this is the only way i can place an uninstall link, with a dummy 
entry in the HKCU root key. When a user  clicks the above advertised 
SomeApplication.exe shortcut, msi tries to install the dummy registry key in 
HKCU root key, and so i have an msi installation going when the user uses the 
shortcut for the first time. 

Is there any way i can place a Unistall shortcut without a per-user Component 
(Registry Key in this case) ? Or is it possible to add a non-advertised 
shortuct for items installed on Per-Machine Mode ?

Any suggestions are highly appreciated.

thanks
Arun V


Rob Wrote:
----------------------
Turn on the MSI logging registry key and check out the verbose log file. It'll 
tell you which component is getting reinstalled. The EventViewer will also give 
you the Component GUID but I find the verbose log file easier to work through.

Arun Wrote : 
---------------------------

I am creating some shortcuts in my Wix installer script under ALL USER, by 
setting the property value to 1. My shortcuts do get created in 
ProgramMenuFolder under All Users section, and are visible to all users, 
irrespective of who installed it.

But, when a user (not the one who installed it) clicks on a shortcut, it tries 
to run the msi installer again and goes looking for the original msi used to 
perform the installation.


I am not sure, how to avoid this behaviour ? User performing the initial intall 
is infact admin on the machine, and the installation doesnt give any error. But 
shortcuts for some reason doesnt seem to work for a different user.

Any idea why this happens ? 

thanks for your help in advance.
Arun 
 *********************************
Arun Kumar
"The Distance between heaven and earth, is not a matter of 
Altitude, but ATTITUDE"



      
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to