모든 사용자를위한 프로그램 바로 가기를 설치하는 방법은 무엇입니까?

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

문제

Windows Installer XML 툴킷을 사용하여 설치 프로그램 MSI 파일을 만들고 있습니다. 생성 된 MSI 파일을 설치할 때 Programmenufolder 폴더 아래에 배치 된 바로 가기는 관리자 사용자에게만 바로 가기를 만듭니다. 설치 프로그램이 모든 사용자 프로파일에서 단축키를 만들도록하려면 어떻게하여 기계의 모든 사람이 단축키를 갖도록합니까?

도움이 되었습니까?

해결책

Stuart Preston의 블로그는이 작업을 수행하는 방법에 대한 좋은 설명이 있습니다.

"모든 사용자"를위한 바로 가기 설치 (Wayback Machine을 통해)

편집하다:

시놉시스는 다음과 같습니다.

.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='perMachine'

Wix 튜토리얼의 SampleFirst.wxs를 기반으로합니다 http://www.tramontana.co.hu/wix/lesson1.php 내가 변경 한 두 부분이있었습니다.

먼저 속성 alluers = 1 ""를 추가하십시오. 이는 다른 사용자가 언급 한 것처럼 모든 사용자 프로필에 단축키를 설치합니다.

둘째, 구성 요소 '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>

밥 아른슨 a 블로그 항목 여기에는 WIX에서 사용자 대 머신을 설정하는 방법이 포함됩니다.
빠른 답변은 패키지 요소의 설치 스코프 속성을 "영구"로 설정하는 것입니다.

단순한 정의 allusers = 1을 정의하여 기계 당 설치를 강요합니다.

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top