Pregunta

Estoy creando un archivo MSI instalador usando el kit de herramientas Windows Installer XML. Al instalar el archivo MSI creado, un acceso directo colocado bajo los resultados de la carpeta ProgramMenuFolder en un acceso directo sólo para el usuario administrador. ¿Cómo puedo dejar que el instalador crear un acceso directo bajo el perfil Todos los usuarios, por lo que todo el mundo en la máquina tiene el acceso directo?

¿Fue útil?

Solución

el blog

Stuart Preston tiene una buena descripción de cómo hacer esto:

Instalación de un acceso directo para "Todos los usuarios" (a través de Wayback Machine)

Editar

El Synopsys es:

  

En el archivo .wxs, incluir lo siguiente:

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

Esto preestablecer una propiedad que imita el comportamiento de selección   "Todos los usuarios" en lugar de "Just Me" para su instalación. Vas   necesitará una estructura de directorios similar al también lo siguiente:

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

Por último, el acceso directo debe estar dentro de un elemento de "Archivo", de la siguiente manera:

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

Otros consejos

En el paquete elemento , añadir un atributo InstallScope como esto:

InstallScope='perMachine'

A partir de los SampleFirst.wxs en el WIX Tutorial http: //www.tramontana. co.hu/wix/lesson1.php había dos partes que he cambiado.

En primer lugar, añadir el ALLUERS propiedad = 1 "". Que se instala el acceso directo al perfil Todos los usuarios como han dicho otros.

En segundo lugar, cambiar la raíz para el valor de registro para el Componente 'ProgramMenuDir' a HKMU. El instalador decidirá si se debe utilizar HKLM (equipo local) o HKCU (usuario actual) en el momento de la instalación, basado en el de la propiedad ALLUSERS.

A continuación, debería ser capaz de añadir cuadros de diálogo para modificar la propiedad ALLUSERS, con la raíz del registro cambia en consecuencia.

<?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 tiene un entrada de blog que trata sobre cómo definir usuario contra la máquina en Wix.
La respuesta rápida es establecer InstallScope del elemento de paquete atribuyen a "perMachine".

Simple definen ALLUSERS = 1 para forzar una instalación por equipo.

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top