我使用Windows安裝程序XML工具包創建安裝程序msi文件。安裝創建的msi文件時,放置在ProgramMenuFolder文件夾下的快捷方式僅爲管理員用戶提供了一個快捷方式。如何讓安裝程序在「所有用戶」配置文件下創建快捷方式,以便機器上的每個人都擁有快捷方式?如何爲所有用戶安裝程序快捷方式?
回答
斯圖爾特普雷斯頓的博客對如何做一個很好的說明:
Installing a shortcut for "All Users" (via Wayback Machine)
編輯:
Synopsys的是:
在你.wxs文件,包括以下內容:
<Property Id="ALLUSERS"><![CDATA[2]]></Property>
這將預設一個屬性,模擬選擇 「所有用戶」而不是「Just Me」的行爲。你會 需要類似的目錄結構如下太:
<Directory Id='ProgramMenuFolder' Name='PMenu' LongName='Programs'> <Directory Id='MyProductShortcutDir' Name='MyPMenu' LongName='MyProduct' /> </Directory>
最後,您的快捷方式應該是一個「文件」元素中,如下所示:
<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>
在Package element,添加一個像這樣的InstallScope屬性:
InstallScope='perMachine'
簡單定義ALLUSERS = 1強制每機器安裝。
<Property Id="ALLUSERS"><![CDATA[1]]></Property>
您應該使用InstallScope ='perMachine'而不是 – 2009-04-30 20:43:16
這不就是設置ALLUSERS屬性嗎?至少這就是文件中指出的那樣.. – saschabeaumont 2009-05-01 00:28:50
根據在維克斯教程http://www.tramontana.co.hu/wix/lesson1.php的SampleFirst.wxs有兩個部分,我改變。
首先,添加屬性ALLUERS = 1「」。如其他人所指出的那樣,這將安裝所有用戶配置文件的快捷方式。
其次,將Component'ProgramMenuDir'的註冊表值的根目錄更改爲HKMU。安裝程序將根據ALLUSERS屬性決定在安裝時是應該使用HKLM(本地計算機)還是HKCU(當前用戶)。
然後,您應該能夠添加對話框來修改ALLUSERS屬性,註冊表根相應地發生更改。
<?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有blog entry,討論瞭如何設置用戶對機器的維克斯。
快速的答案是將Package元素的InstallScope屬性設置爲「perMachine」。
- 1. 爲所有用戶安裝可選桌面快捷方式
- 2. Windows安裝程序/ RunAs快捷方式
- 3. 以編程方式安裝應用程序快捷方式
- 4. 爲安裝的電子應用程序創建快捷方式
- 5. 主屏快捷方式應用程序沒有安裝
- 6. Chrome應用程序快捷方式/ Mozilla Prism安裝程序
- 7. 應用程序未安裝快捷方式
- 8. Adobe AIR應用程序:安裝快捷方式
- 9. 如何使安裝程序創建快捷方式文檔和文件夾的快捷方式(Windows 8)
- 10. 在用戶主屏幕上安裝應用程序快捷方式
- 11. Wix:如何刪除安裝上的現有快捷方式?
- 12. 嘗試重新安裝應用程序的應用程序快捷方式
- 13. 如何從chrome擴展中安裝應用程序快捷方式?
- 14. Inno安裝程序:如何更改使用的快捷方式文本?
- 15. C#安裝程序快捷方式StartIn屬性
- 16. (WiX)每臺機器安裝的程序文件快捷方式
- 17. 安裝程序快捷方式進入CHM幫助文件
- 18. letsencrypt ssl安裝快捷方式
- 19. 安裝項目的C#快捷方式
- 20. 在Install4j安裝程序的所需位置創建快捷方式
- 21. 如何爲所有使用WiX的用戶在SendToFolder中創建快捷方式?
- 22. 如何在運行時獲取所有已安裝應用程序的靜態快捷方式(快捷方式)的內容?
- 23. 使用cx_Freeze安裝程序爲Python添加開始菜單快捷方式
- 24. DISABLEADVTSHORTCUTS = 1禁用所有快捷方式
- 25. Wix安裝程序:如何在同一安裝包中爲Win7和Win10創建開始菜單快捷方式?
- 26. Android的安裝快捷方式,但快捷方式圖標不顯示
- 27. 任何方式讓Java Web Start自動安裝快捷方式?
- 28. 如何添加快捷方式到所有應用程序屏幕
- 29. NSIS - 適用於所有用戶的桌面快捷方式
- 30. Wix安裝程序快捷方式啓動菜單沒有出現
當你這樣做時,你不必擔心ALLUSERS屬性。將InstallScope設置爲'perMachine'會自動將ALLUSERS設置爲1. – RaceRalph 2016-08-12 14:19:33