すべてのユーザーのためのプログラムのショートカットをインストールする方法?

StackOverflow https://stackoverflow.com/questions/751000

質問

私は、WindowsインストーラのXMLツールキットを使用してインストーラのMSIファイルを作成しています。作成したMSIファイルをインストールする場合、ショートカットは管理者ユーザーのショートカットでProgramMenuFolderフォルダ結果の下に配置します。マシン上の誰もがショートカットを持っているように、どのように私は、インストーラがすべてのユーザープロファイルの下にショートカットを作成してみましょうか?

役に立ちましたか?

解決

スチュアート・プレストンさんのブログには、これを行う方法の良い説明があります:

<のhref = "https://web.archive.org/web/20111118011836/http://consultingblogs.emc.com:80/stuartpreston/archive/2005/12/06/2470.aspx" のrel = "nofollowをnoreferrer">(ウェイバックマシンを経由して) "すべてのユーザー" のショートカットをインストールする

編集

シノプシスがあります:

  

あなたの.wxsファイルで、次のものが含まれます:

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

このは、選択の動作を模倣する性質をプリセットします   「すべてのユーザー」のではなく、インストールのための「ジャスト・ミー」。あなたはよ   あまりにも次のようなディレクトリ構造を必要とします:

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

他のヒント

パッケージ要素のでは、このようInstallScope属性を追加します。

InstallScope='perMachine'

WIXチュートリアル HTTPでSampleFirst.wxsに基づい://www.tramontana。 co.hu/wix/lesson1.phpは、私が変更され2つの部分がありましたます。

まず、 "= 1" プロパティALLUERSを追加します。それは他の人が指摘しているように、すべてのユーザーがプロファイルにショートカットをインストールします。

第二に、HKMUにComponentのProgramMenuDir 'のレジストリ値のためにルートを変更。それは、インストール時にHKLM(ローカルマシン)またはHKCU(現在のユーザー)を使用する必要がある場合、インストーラは、ALLUSERSプロパティに基づいて、決定されます。

あなたは、レジストリのルートは、それに応じて変更することで、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>

ボブArnson の<のhref = "http://www.joyofsetup.com/2008/を持っています4月1日/新WiXの-機能設定パッケージのインストールスコープ/」のrel = 『nofollowをnoreferrer』ウィックスでマシン対ユーザーを設定する方法を説明します>ブログエントリで。
迅速な答えは、パッケージ要素のInstallScope属性に「perMachine」を設定することです。

単純あたりマシンのインストールを強制するALLUSERS = 1を定義します。

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top