Je crée un fichier msi du programme d'installation à l'aide de la boîte à outils Windows Installer XML. Lors de l'installation du fichier msi créé, un raccourci placé sous le dossier ProgramMenuFolder entraîne un raccourci pour l'utilisateur Administrateur uniquement. Comment puis-je laisser le programme d'installation créer un raccourci sous le profil Tous les utilisateurs, afin que tout le monde sur l'ordinateur dispose du raccourci?Comment installer des raccourcis de programme pour tous les utilisateurs?
Répondre
Stuart blog de Preston a une bonne description de la façon de le faire:
Installing a shortcut for "All Users" (via Wayback Machine)
Edit:
Les Synopsys:
Dans votre fichier .wxs, comprennent les éléments suivants:
<Property Id="ALLUSERS"><![CDATA[2]]></Property>
Cela présélectionne une propriété qui imite le comportement de sélection "Tous les utilisateurs" plutôt que "Just Me" pour votre installation. Vous aurez besoin d'une structure de répertoire similaire à celui-ci 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>
Dans le Package element, ajouter un attribut InstallScope comme ceci:
InstallScope='perMachine'
simple définir ALLUSERS = 1 pour forcer une installation par machine .
<Property Id="ALLUSERS"><![CDATA[1]]></Property>
Vous devez utiliser InstallScope = 'perMachine' à la place –
Cela ne fait-il pas que définir la propriété ALLUSERS? Au moins, c'est ce qui est indiqué dans la documentation. – saschabeaumont
Sur la base des SampleFirst.wxs dans Wix Tutorial 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 le profil de tous les utilisateurs, comme d'autres l'ont noté.
Deuxièmement, modifiez la racine pour la valeur de Registre pour le composant 'ProgramMenuDir' à HKMU. Le programme d'installation décidera s'il doit utiliser HKLM (machine locale) ou HKCU (utilisateur actuel) au moment de l'installation, en fonction de la propriété ALLUSERS.
Vous devriez alors pouvoir ajouter des boîtes de dialogue pour modifier la propriété ALLUSERS, la racine du registre étant modifiée 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>
'HKMU' était apparemment l'incantation magique dont j'avais besoin aujourd'hui! –
Bob Arnson a une blog entry qui couvre comment configurer l'utilisateur par rapport à la machine à Wix.
La réponse rapide est de définir l'attribut InstallScope de l'élément Package sur "perMachine".
- 1. Assistant d'installation de Visual Studio 2005 - création de raccourcis de bureau pour tous les utilisateurs
- 2. Liste de tous les utilisateurs et groupes
- 3. Dossier "Tous les utilisateurs"
- 4. Cliquez une fois - Tous les utilisateurs
- 5. WiX: Comment créer un partage pour tous les utilisateurs?
- 6. Lancez l'application au démarrage pour tous les utilisateurs, mais également autoriser les paramètres par utilisateur (Windows)
- 7. Où stocker les données du Registre pour tous les utilisateurs
- 8. Comment obtenir la liste de tous les utilisateurs dans SharePoint
- 9. ASP.NET MVC Liste tous les utilisateurs
- 10. raccourcis clavier rompus pour un programme Xwindows distant
- 11. Comment accorder l'accès à tous les utilisateurs authentifiés?
- 12. Comment installer les dépendances de script Perl?
- 13. Bugzilla: Définir les autorisations pour rendre un produit en lecture seule pour tous les utilisateurs
- 14. Comment effacer l'état de session SQL pour tous les utilisateurs dans ASP.NET
- 15. Raccourcis de fenêtre pour XFCE4
- 16. Comment conserver les raccourcis d'application actuels/synchronisés?
- 17. Désactiver tous les sons du programme
- 18. Empêcher les utilisateurs de créer des planifications pour les travaux
- 19. Démarrage/arrêt d'un agent launchd pour tous les utilisateurs ayant des sessions GUI
- 20. Contrôle Cocoa pour la configuration des raccourcis
- 21. Comment désactiver les raccourcis dans WPF TextBox
- 22. s3 cloudfront répertoriant tous les contenus dans le compartiment pour les utilisateurs anonymes
- 23. MySQL - Requête Tous les utilisateurs SANS rendez-vous
- 24. Comment lister par programme tous les contrôleurs dans Rails
- 25. Comment réaffecter des raccourcis Windows en C#?
- 26. Où stocker les données inscriptibles devant être partagées par tous les utilisateurs dans un programme d'installation Vista?
- 27. Comment définir tous les privilèges des utilisateurs sur un chemin en utilisant asp.net C#?
- 28. Comment ajouter un raccourci au menu 'SendTo' qui sera disponible pour tous les utilisateurs
- 29. Outlook/Exchange - comment exporter par programme des utilisateurs dans la liste de distribution?
- 30. Meilleure pratique pour autoriser tous les utilisateurs pour une seule page
Lorsque vous faites cela, vous n'avez pas à vous soucier de la propriété ALLUSERS. Définir InstallScope sur 'perMachine' définit automatiquement ALLUSERS à 1. – RaceRalph