Question

Je crée un fichier msi d'installation en utilisant la boîte à outils Windows Installer XML. Lors de l'installation du fichier créé msi, un raccourci placé sous les résultats du dossier de ProgramMenuFolder dans un raccourci pour l'utilisateur Administrateur uniquement. Comment puis-je laisser l'installateur créer un raccourci sous le profil Tous les utilisateurs, de sorte que tout le monde sur la machine a le raccourci?

Était-ce utile?

La solution

Stuart blog de Preston a une bonne description de la façon de le faire:

Installation d'un raccourci pour "Tous les utilisateurs" (via Wayback machine)

Modifier

Le Synopsys est:

  

Dans votre fichier .wxs, inclure ce qui suit:

<Property Id="ALLUSERS"><![CDATA[2]]></Property>
     

Cela prérégler une propriété qui imite le comportement de sélection   les « Tous les utilisateurs » plutôt que « Just Me » pour votre installation. vous aurez   besoin d'une structure de répertoire similaire à ce qui suit aussi:

<Directory Id='ProgramMenuFolder' Name='PMenu' LongName='Programs'>
<Directory Id='MyProductShortcutDir' Name='MyPMenu' LongName='MyProduct' />
</Directory>
     

Enfin, votre raccourci devrait être dans un élément « Fichier », comme suit:

<File Id="MyProduct.File0" LongName="MyProduct.exe" Name="MYPROD_1.EXE" src="c:\MyProductSourceFolder\MyProduct.exe" >
<Shortcut Id="MyProduct.Shortcut" Directory="MyProductShortcutDir" Name="MPSCUT" LongName="My Product Shortcut" /> 
</File>

Autres conseils

Dans le élément paquet , ajoutez un attribut InstallScope comme ceci:

InstallScope='perMachine'

Sur la base des SampleFirst.wxs dans Wix Tutoriel http: //www.tramontana. co.hu/wix/lesson1.php il y avait deux parties que j'ai changé.

D'abord, ajoutez la propriété ALLUERS = 1 "". Cela installe le raccourci vers tous les profils que d'autres ont noté.

En second lieu, changer la racine de la valeur de Registre pour le composant « ProgramMenuDir » à HKMU. Le programme d'installation décidera si elle doit utiliser HKLM (Machine locale) ou HKCU (utilisateur actuel) lors de l'installation, sur la base de la propriété ALLUSERS.

Vous devriez alors être en mesure d'ajouter des boîtes de dialogue pour modifier la propriété ALLUSERS, avec la racine de Registre changer en conséquence.

<?xml version="1.0" encoding="utf-8"?>
<!-- Original Source available at "http://www.tramontana.co.hu/wix/download.php?file=samples/samplefirst.zip&type=application/zip" 
  This version has been modified for a local machine install (all users) vs a user install-->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Name="Foobar 1.0" Id="YOURGUID-CD32-4B20-BB4F-58A5C3B21A7C" UpgradeCode="YOURGUID-EDCE-42A2-9DA2-59FB08AC4FA6" Language="1033" Codepage="1252" Version="1.0.0" Manufacturer="Acme Ltd.">
        <Package Id="*" Keywords="Installer" Description="Acme's Foobar 1.0 Installer" Comments="Foobar is a registered trademark of Acme Ltd." Manufacturer="Acme Ltd." InstallerVersion="100" Languages="1033" Compressed="yes" SummaryCodepage="1252" />
        <Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1" />
        <Property Id="DiskPrompt" Value="Acme's Foobar 1.0 Installation [1]" />
        <Property Id="ALLUSERS" Value="1" />
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder" Name="PFiles">
                <Directory Id="Acme" Name="Acme">
                    <Directory Id="INSTALLDIR" Name="Foobar 1.0">
                        <Component Id="MainExecutable" Guid="YOURGUID-2191-4A98-806B-2554B0DD8FC3">
                            <File Id="FoobarEXE" Name="FoobarAppl10.exe" DiskId="1" Source="FoobarAppl10.exe" KeyPath="yes">
                                <Shortcut Id="startmenuFoobar10" Directory="ProgramMenuDir" Name="Foobar 1.0" WorkingDirectory="INSTALLDIR" Icon="Foobar10.exe" IconIndex="0" Advertise="yes" />
                                <Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory="INSTALLDIR" Icon="Foobar10.exe" IconIndex="0" Advertise="yes" />
                            </File>
                        </Component>
                        <Component Id="HelperLibrary" Guid="YOURGUID-7BA7-4BD1-90B9-C0DFC21674B1">
                            <File Id="HelperDLL" Name="Helper.dll" DiskId="1" Source="Helper.dll" KeyPath="yes" />
                        </Component>
                        <Component Id="Manual" Guid="YOURGUID-F60A-48D6-83FD-44ED01AA579A">
                            <File Id="Manual" Name="Manual.pdf" DiskId="1" Source="Manual.pdf" KeyPath="yes">
                                <Shortcut Id="startmenuManual" Directory="ProgramMenuDir" Name="Instruction Manual" Advertise="yes" />
                            </File>
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
            <Directory Id="ProgramMenuFolder" Name="Programs">
                <Directory Id="ProgramMenuDir" Name="Foobar 1.0">
                    <Component Id="ProgramMenuDir" Guid="YOURGUID-2D4F-443F-9ADA-563DB3C1581F">
                        <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
                        <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
                    </Component>
                </Directory>
            </Directory>
            <Directory Id="DesktopFolder" Name="Desktop" />
        </Directory>
        <Feature Id="Complete" Level="1">
            <ComponentRef Id="MainExecutable" />
            <ComponentRef Id="HelperLibrary" />
            <ComponentRef Id="Manual" />
            <ComponentRef Id="ProgramMenuDir" />
        </Feature>
        <Icon Id="Foobar10.exe" SourceFile="FoobarAppl10.exe" />
        <UI />
    </Product>
</Wix>

Bob Arnson a un entrée de blog qui couvre comment configurer l'utilisateur par rapport à la machine à Wix.
La réponse rapide est de définir InstallScope de l'élément paquet attribut à « perMachine ».

Simple définie ALLUSERS = 1 pour forcer une installation par machine.

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top