سؤال

وترقيات تعمل بشكل جيد إذا تغيرت أي عناصر، ولكن في أي وقت تغيير عنصر الترقية فشل، وأنه يتطلب من المستخدم لإلغاء يدويا وإعادة تثبيت.

وبعض قصاصات:

<Product Id="*" Name="My Application" Language="1033" Version="!(bind.FileVersion.ClientEXE)" Manufacturer="My Company" UpgradeCode="MYGUID-b94a-44eb-8e92-9286f1d89bbd">
    <Package Id="*" Description="My Installer" Comments="Copyright My Company 2008" InstallerVersion="200" Compressed="yes" />
    <Upgrade Id="MYGUID-b94a-44eb-8e92-9286f1d89bbd">
      <UpgradeVersion Language="1033" Property="UPGRADEFOUND" Minimum="0.0.0.0" Maximum="99.99.99.99" IncludeMinimum="yes" IncludeMaximum="yes" />
    </Upgrade>


    <InstallExecuteSequence>
          <RemoveExistingProducts Before="InstallInitialize" />
    </InstallExecuteSequence>

وبالإضافة إلى ذلك، لدينا بعض المسألة مع مفتاح التسجيل التالي في بعض الأحيان لا إزالة على إلغاء وأنا لا أفهم لماذا:

      <Component Id="InstalledRegistry" Guid="SOMEGUID-0a17-4c6b-983d-8f3feb3a7724">
        <RegistryKey Id="InstalledRegKey" Root="HKMU" Key="SOFTWARE\MyCompany\Client" Action="createAndRemoveOnUninstall">
          <RegistryValue Name="Version" Type="string" Value="!(bind.FileVersion.ClientEXE)" KeyPath="yes"/>
        </RegistryKey>
      </Component>

وهذا ما يتحقق الإطلاق لمعرفة ما إذا كان لإطلاق MSIEXEC مع "REINSTALL = ALL REINSTALLMODE = vamus" أم لا، حتى إذا تم إلغاء تثبيت ذلك، ولكن مفتاح التسجيل لم تحصل على إزالة الإعداد سيحاول القيام ترقية وتفشل بصمت .

واسمحوا لي أن أعرف إذا كان هناك حاجة إلى أي مزيد من المعلومات


وتحرير: كان هناك بعض المسألة الأخرى بعد ذلك إلا مع بعض الملفات التي تم تحديثها. تغيرت RemoveExistingProducts إلى بعد = "InstallValidate" وان حل ذلك. يجعل من أبطأ قليلا لأنه يزيل تماما تثبيت سابقة بدلا من مجرد رفع الملفات التي غيرت (والذي لا يبدو للكشف بشكل صحيح بالنسبة لي) لكنه يحصل على هذه المهمة.

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

المحلول

وFWIW، أنت لا تحتاج إلى أي الحجج فلكس لإجراء ترقية رئيسية.

والرمز يبدو طيب بالنسبة لي، لذلك قد يكون من أن رقم الإصدار هو لم يتغير؟ (مع الأخذ في الاعتبار أن ويندوز المثبت يهتم فقط الأجزاء الثلاثة الأولى إذا كنت تستخدم رقم الإصدار 4 أجزاء)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top