كيفية تثبيت اختصارات البرنامج لجميع المستخدمين؟

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

سؤال

أقوم بإنشاء ملف MSI Installer باستخدام مجموعة أدوات Windows Installer XML. عند تثبيت ملف MSI الذي تم إنشاؤه، يؤدي الاختصار الموضوع في إطار مجلد ProgramMenuFolder إلى اختصار لمستخدم المسؤول فقط. كيف يمكنني السماح للمثبط بإنشاء اختصار ضمن ملف تعريف المستخدمين، بحيث يكون لدى الجميع على الجهاز الاختصار؟

هل كانت مفيدة؟

المحلول

تتمتع بلوق ستيوارت بريستون بوصف جيد لكيفية القيام بذلك:

تثبيت اختصار ل "جميع المستخدمين" (عبر آلة Wayback)

يحرر:

Synopsys هي:

في ملف .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>

نصائح أخرى

في ال عنصر الحزمة, أضف سمة InternetScope مثل هذا:

InstallScope='perMachine'

بناء على SampleFirst.wxs في البرنامج التعليمي WIX http://www.tramontana.co.hu/wix/lesson1.php. كان هناك جزأين تغيرت.

أولا، إضافة الإكمال الإملائي = 1 ". التي تقوم بتثبيت الاختصار على ملف تعريف المستخدمين مثل الآخرين قد لاحظوا.

ثانيا، قم بتغيير جذر قيمة التسجيل للحصول على مكون "Programmenudir" إلى HKMU. سيقرر المثبت ما إذا كان يجب استخدام 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>

بوب أرنسون لديه أ مدونة المدونة التي تغطي كيفية تعيين المستخدم مقابل الجهاز في WIX.
الجواب السريع هو تعيين سمة تثبيت عنصر الحزمة إلى "permachine".

بسيطة تحديد Allusers = 1 لفرض تثبيت لكل جهاز.

  <Property Id="ALLUSERS"><![CDATA[1]]></Property>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top