Domanda

Sto creando un programma di installazione msi file utilizzando Windows Installer XML toolkit.Quando si installa l'creato il file msi, un collegamento posto sotto il ProgramMenuFolder risultati di cartelle in una scelta rapida per l'utente Amministratore unico.Come faccio a permettere all'installatore di creare un collegamento sotto il profilo di Tutti gli Utenti, in modo che tutti la macchina ha il collegamento?

È stato utile?

Soluzione

Stuart Preston blog ha una buona descrizione di come fare questo:

L'installazione di un collegamento per "Tutti gli Utenti" (via Wayback Machine)

Edit:

Il synopsys è:

Nel vostro .wxs file, sono i seguenti:

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

Questo preset di una struttura che simula il comportamento di selezione "Tutti gli Utenti", piuttosto che "Solo io" per l'installazione.Ti bisogno di una struttura di directory simile al seguente troppo:

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

Infine, il collegamento dovrebbe essere all'interno di un "File" elemento", come segue:

<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>

Altri suggerimenti

pacchetto elemento , aggiungere un attributo InstallScope in questo modo:

InstallScope='perMachine'

In base alle SampleFirst.wxs nel WIX Tutorial http: //www.tramontana. co.hu/wix/lesson1.php c'erano due parti che ho cambiato.

In primo luogo, aggiungere l'ALLUERS proprietà = 1 "". Che installa il collegamento al profilo Tutti gli utenti come altri hanno notato.

In secondo luogo, cambiare la radice per il valore del Registro per la componente 'ProgramMenuDir' a HKMU. Il programma di installazione deciderà se deve usare HKLM (Computer locale) o HKCU (utente corrente) al momento dell'installazione, sulla base della sulla proprietà ALLUSERS.

Si dovrebbe quindi essere in grado di aggiungere finestre di dialogo per modificare la proprietà ALLUSERS, con la radice registro cambia di conseguenza.

<?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 ha un blog che copre come impostare User vs. macchina in Wix.
La risposta rapida è quello di impostare l'attributo InstallScope dell'elemento Package a "perMachine".

semplice definire ALLUSERS = 1 per forzare un'installazione per computer.

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top