Windows Installer XMLツールキットを使用してインストーラmsiファイルを作成しています。作成されたmsiファイルをインストールするとき、ProgramMenuFolderフォルダの下にショートカットが作成されると、管理者ユーザーのためのショートカットが作成されます。インストーラがAll Usersプロファイルのショートカットを作成するようにして、マシン上の全員がショートカットを持つようにするにはどうすればよいですか?すべてのユーザーにプログラムのショートカットをインストールするには?
答えて
スチュアート・プレストンさんのブログは、これを行う方法の適切な説明があります。
Installing a shortcut for "All Users" (via Wayback Machine)
編集:
シノプシスがある:あなたの.wxsファイルで
、以下を含む:
<Property Id="ALLUSERS"><![CDATA[2]]></Property>
これは、「Just Me」ではなく「All Users」を で選択した場合の動作を模倣するプロパティをプリセットします。あなたは はあまりにも次のようなディレクトリ構造が必要になります:次のように
<Directory Id='ProgramMenuFolder' Name='PMenu' LongName='Programs'> <Directory Id='MyProductShortcutDir' Name='MyPMenu' LongName='MyProduct' /> </Directory>
最後に、あなたのショートカットは、「ファイル」要素内でなければならない:
Package elementで<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>
、次のようなInstallScope属性を追加します。
InstallScope='perMachine'
単純にALLUSERS = 1を定義すると、マシン単位のインストールが強制されます。
<Property Id="ALLUSERS"><![CDATA[1]]></Property>
代わりにInstallScope = 'perMachine'を使用してください。 –
ALLUSERSプロパティを設定するだけではありませんか?少なくともそれはドキュメンテーションに示されているものです。 – saschabeaumont
WIXチュートリアルhttp://www.tramontana.co.hu/wix/lesson1.phpでSampleFirst.wxsに基づいて、私は変更2つの部分がありました。
まず、プロパティALLUERS = 1 ""を追加します。これは、他のユーザーが指摘しているように、すべてのユーザープロファイルへのショートカットをインストールします。
第2に、コンポーネント '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>
'HKMU'は私が今日必要としていたような魔法の呪文でした! –
Bob Arnsonウィックスでマシン対ユーザーを設定する方法について説明blog entryを持っています。
簡単な答えは、Package要素のInstallScope属性を "perMachine"に設定することです。
- 1. すべてのユーザーにMicrosoft Wordテンプレートアドインをインストールするには?
- 2. すべてのユーザーにAir Appをインストールする
- 3. Androidですべてのホーム画面のショートカットをプログラム的に削除
- 4. サーバでプログラムを実行する(ショートカットで)クライアントのすべてのプロセスを強制終了するには
- 5. SLES 11のすべてのユーザー用にPython 2.7をインストール
- 6. WiXのは、現在のユーザーの選択にインストールするオプションでスクリプトをWXS、またはすべてのユーザーが
- 7. プログラムのライブラリをインストールするには?
- 8. vb.netでユーザーxのすべてのプログラムを終了する
- 9. スタート - >プログラムにショートカットを作成するには?
- 10. Pythonはすべてのユーザーまたは現在のユーザーのみにインストールされていますか?
- 11. どのように私は私のプログラムが正しく、すべてのユーザー入力を処理するべき?
- 12. JuliaStatsの下にすべてのパッケージをインストールするには?
- 13. すべてのユーザーが利用できる「SendTo」メニューにショートカットを追加する方法
- 14. すべてのユーザーのためにWindows 8.1にcordova/phonegapアプリケーションをインストール
- 15. Openfireのすべてのユーザーにメッセージを送信するには?
- 16. すべてのユーザー用のアプリケーションとデータベースをインストールします
- 17. Visual Studioセットアッププロジェクトすべてのユーザーのインストールを削除します
- 18. すべてのユーザーのレジストリソフトウェアポリシーキーをプログラムで設定します
- 19. WiXを使用してINFベースのUSBドライバをインストールする方法すべてのスタートメニューのショートカットとデスクトップアイコン
- 20. すべてのプロジェクトでPycharmにパッケージをインストールするには?
- 21. Windows(Vista):プログラムのショートカットにプロセス優先度を設定する
- 22. ジュピター/ IPythonノートブック:「すべて実行」のショートカット?
- 23. Visual Studioのセットアッププロジェクト - ショートカットによりインストールのロールバックが発生する
- 24. インストール後に自動的にショートカットを作成する方法
- 25. Windowsのすべてのユーザーのパスにプログラムで追加します。
- 26. 私のアプリケーションのすべてのユーザーを取得するには
- 27. VS2010セットアップからショートカットをインストールする
- 28. URLショートカットをプログラムで追加する
- 29. HTML要素内のすべてのコンテンツを選択するショートカット?
- 30. すべてのテキストボックスをクリアする(任意のショートカット)
これを行うと、ALLUSERSプロパティについて心配する必要はありません。 InstallScopeを 'perMachine'に設定すると、ALLUSERSは自動的に1に設定されます。 – RaceRalph