مشاركة عبر


مرجع مخطط الحزمة و المنتج

ملف المنتَج هو بيان XML الذي يصف كافة التبعيات الخارجية المطلوبة من قِبَل تطبيق ClickOnce . أمثلة التبعيات الخارجية تتضمن .NET Framework و Microsoft Data Access Components (MDAC). ملف الحزمة مشابه لملف المنتَج ولكن يتم استخدامه لتثبيت المكونات المعتمد على الموروثات من التبعية مثل التجميعات و اتفاقيات الترخيص والوثائق المعدّة محليًّا.

ملف الحزم و المنتَج يتألف من إما Product في أعلى مستوى أو عنصرPackage , كل منها يحتوي على العناصر التالية.

العنصر

الوصف

السمات

عنصر <Product> (الإطلاق)

مطلوب عنصر ذو المستوى الأعلى لملفات المنتج.

لا يوجد

عنصر <Package> (الإطلاق)

مطلوب عنصر ذو المستوى الأعلى لملفات الحزمة.

Culture

Name

EULA

عنصر < RelatedProducts > (الإطلاق)

عنصر اختياري لملفات المنتج. المنتجات الأخرى التي إما يقوم هذا المنتج بتثبيتها أو يعتمد عليها.

لا يوجد

عنصر < InstallChecks > (الإطلاق)

العنصر المطلوب. يسرد تدقيقات التبعية للتنفيذ على الكمبيوتر المحلي أثناء التثبيت.

لا يوجد

عنصر< Commands > (الإطلاق)

العنصر المطلوب. ينفّذ عملية أو أكثر للتدقيق في التثبيت كما هو مبين في InstallChecks ، و يشير إلى أي حزمة عن تثبيتها تؤدي لفشل الاختبار.

لا يوجد

عنصر < PackageFiles > (الإطلاق)

العنصر المطلوب. يسرد الحزم التي قد يمكن تثبيتها من قِبَل عملية التثبيت هذه.

لا يوجد

عنصر <Strings> (الإطلاق)

العنصر المطلوب. يخزّن الإصدارات المحلية لاسم المنتج و سلاسل الأخطاء.

لا يوجد

ملاحظات

مخطط الحزمة يتم استخدامه من قِبَل Setup.exe, برنامج كعب روتين التي تم إنشاؤه بواسطة مهمة الإطلاق لـ"بناء MS" الذي يحتوي على منطق تعليمان برمجية مضمّن خاص به. المخطط يحرّك كل أوجه عملية التثبيت.

InstallChecksالاختبارات يجب تنفيذ ذلك setup.exe وجود حزمة معطى. PackageFilesقوائم الجميع الحزم بمعالجة الإعداد قد تحتاج إلى يثّبت، يجب أن فشل اختبار معين. كل إدخال "أمر" تحت "الأوامر" يقوم بتنفيذ أحد الاختبارات المبينة في InstallChecks ، و يعيّن أي PackageFile يجب تشغيله عند فشل الاختبار. يمكنك استخدام عنصر Strings لترجمة أسماء المنتجات و رسائل الأخطاء ، بحيث يمكنك استخدام تثبيت واحد لتثبيت التطبيق بأي عدد من اللغات.

مثال

يوضح مثال التعليمات البرمجية التالي ملف منتج كامل لتثبيت .NET Framework.

<?xml version="1.0" encoding="utf-8" ?>

<Product
  xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper"
  ProductCode="Microsoft.Net.Framework.2.0"
>

    <RelatedProducts>
        <IncludesProduct Code="Microsoft.Windows.Installer.2.0" />
    </RelatedProducts>

    <!-- Defines list of files to be copied on build -->
    <PackageFiles>
        <PackageFile Name="instmsia.exe" HomeSite="InstMsiAExe" PublicKey="3082010A0282010100AA99BD39A81827F42B3D0B4C3F7C772EA7CBB5D18C0DC23A74D793B5E0A04B3F595ECE454F9A7929F149CC1A47EE55C2083E1220F855F2EE5FD3E0CA96BC30DEFE58C82732D08554E8F09110BBF32BBE19E5039B0B861DF3B0398CB8FD0B1D3C7326AC572BCA29A215908215E277A34052038B9DC270BA1FE934F6F335924E5583F8DA30B620DE5706B55A4206DE59CBF2DFA6BD154771192523D2CB6F9B1979DF6A5BF176057929FCC356CA8F440885558ACBC80F464B55CB8C96774A87E8A94106C7FF0DE968576372C36957B443CF323A30DC1BE9D543262A79FE95DB226724C92FD034E3E6FB514986B83CD0255FD6EC9E036187A96840C7F8E203E6CF050203010001"/>
        <PackageFile Name="WindowsInstaller-KB884016-v2-x86.exe" HomeSite="Msi30Exe" PublicKey="3082010A0282010100B22D8709B55CDF5599EB5262E7D3F4E34571A932BF94F20EE90DADFE9DC7046A584E9CA4D1D84441FB647E0F65EEC817DA4DDBD9D650B40C565B6C16884BBF03EE504883EC4F88939A51E394197FFAB397A5CE606D9FDD4C9338BDCD345971E686CEE98399A096B8EAE0445B1342B93A484E5472F70896E400C482017643AF61C2DBFAE5C5F00213DDF835B40F0D5236467443B1A2CA9CDD7E99F1351177FB1526018ECFE0B804782A15FD72C66076910CE74FB218181B6989B4F12F211B66EACA91C7460DB91758715856866523D10232AE64A06FDA5295FDFBDD8D34F5C10C35A347D7E91B6AFA0F45B4E8321D7019BDD1F9E5641FEB8737EA6FD40D838FFD0203010001"/>
        <PackageFile Name="dotnetfx.exe" HomeSite="DotNetFXExe" PublicKey="3082010A0282010100B22D8709B55CDF5599EB5262E7D3F4E34571A932BF94F20EE90DADFE9DC7046A584E9CA4D1D84441FB647E0F65EEC817DA4DDBD9D650B40C565B6C16884BBF03EE504883EC4F88939A51E394197FFAB397A5CE606D9FDD4C9338BDCD345971E686CEE98399A096B8EAE0445B1342B93A484E5472F70896E400C482017643AF61C2DBFAE5C5F00213DDF835B40F0D5236467443B1A2CA9CDD7E99F1351177FB1526018ECFE0B804782A15FD72C66076910CE74FB218181B6989B4F12F211B66EACA91C7460DB91758715856866523D10232AE64A06FDA5295FDFBDD8D34F5C10C35A347D7E91B6AFA0F45B4E8321D7019BDD1F9E5641FEB8737EA6FD40D838FFD0203010001"/>
        <PackageFile Name="dotnetchk.exe"/>
    </PackageFiles>

    <InstallChecks>
        <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
        <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
    </InstallChecks>


    <!-- Defines how to invoke the setup for the .NET Framework redist -->
    <!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace -->
    <Commands Reboot="Defer">
        <Command PackageFile="instmsia.exe"
                 Arguments= ' /q /c:"msiinst /delayrebootq"'
                 EstimatedInstallSeconds="20" >
            <InstallConditions>
                <BypassIf Property="VersionNT" Compare="ValueExists"/>
                <BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="2.0"/>
            </InstallConditions>
            <ExitCodes>
                <ExitCode Value="0" Result="SuccessReboot"/>
                <ExitCode Value="1641" Result="SuccessReboot"/>
                <ExitCode Value="3010" Result="SuccessReboot"/>
                <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
            </ExitCodes>
        </Command>
        <Command PackageFile="WindowsInstaller-KB884016-v2-x86.exe"
                 Arguments= '/quiet /norestart' 
                 EstimatedInstallSeconds="20" >
          <InstallConditions>
              <BypassIf Property="Version9x" Compare="ValueExists"/>
              <BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3"/>
              <BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="3.0"/>
              <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
          </InstallConditions>
          <ExitCodes>
              <ExitCode Value="0" Result="Success"/>
              <ExitCode Value="1641" Result="SuccessReboot"/>
              <ExitCode Value="3010" Result="SuccessReboot"/>
              <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
        <Command PackageFile="dotnetfx.exe" 
             Arguments=' /q:a /c:"install /q /l"' 
             EstimatedInstalledBytes="21000000" 
             EstimatedInstallSeconds="300">

            <!-- These checks determine whether the package is to be installed -->
            <InstallConditions>
                <!-- Either of these properties indicates the .NET Framework is already installed -->
                <BypassIf Property="DotNetInstalled" Compare="ValueNotEqualTo" Value="0"/>

                <!-- Block install if user does not have admin privileges -->
                <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>

                <!-- Block install on Windows 95 -->
                <FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>

                <!-- Block install on Windows 2000 SP 2 or less -->
                <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3" String="InvalidPlatformWinNT"/>

                <!-- Block install if Internet Explorer 5.01 or greater is not present -->
                <FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE" />
                <FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.01" String="InvalidPlatformIE" />

                <!-- Block install if the platform is not x86 -->
                <FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture" />
            </InstallConditions>

            <ExitCodes>
                <ExitCode Value="0" Result="Success"/>
                <ExitCode Value="3010" Result="SuccessReboot"/>
                <ExitCode Value="4097" Result="Fail" String="AdminRequired"/>
                <ExitCode Value="4098" Result="Fail" String="WindowsInstallerComponentFailure"/>
                <ExitCode Value="4099" Result="Fail" String="WindowsInstallerImproperInstall"/>
                <ExitCode Value="4101" Result="Fail" String="AnotherInstanceRunning"/>
                <ExitCode Value="4102" Result="Fail" String="OpenDatabaseFailure"/>
                <ExitCode Value="4113" Result="Fail" String="BetaNDPFailure"/>
                <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
            </ExitCodes>

        </Command>
    </Commands>
</Product>

راجع أيضًا:

المرجع

ClickOnce Deployment Manifest

ClickOnce Application Manifest