تثبيت Capicom دون SelfReg:Wix إجراءات مخصصة لم يتم العثور على (يخطئ 2721)

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

سؤال

بعد اتباع النصائح في هذا السؤال بنجاح, لقد تم إضافة عدة خطوط إضافية من رمز مخصص آخر العمل.هذا هو المقصود من الدعوة regsvr32 على نسخة من capicom التي حاولت أن تضع المستخدم في مجلد النظام.ومع ذلك أنا على خطأ 2721 ، والتي يبدو أن إجراء مخصص لم يتم العثور على خطأ من ما رأيت.أي اقتراحات ؟ أحاول الحفاظ على الاتساق مع التكرارات السابقة من المثبت عن طريق الاتصال regsvr, بدلا من مجرد إضافة إدخالات التسجيل أثناء التثبيت, التي يمكن أن تكون فكرة جيدة بدلا من ذلك.:::تتغاضى:::

<Directory Id="SystemFolder" Name="Sys">
  ...
  <component ...>
     ...
    <File Id="CapiCom.Dll" LongName="CapiCom.Dll" Name="CAPICOM.DLL" Source=... />
  </component>
</directory>
...
<CustomAction Id="REGCAPICOM" ExeCommand='regsvr32.exe "[SystemFolder]capicom.dll"' Return = "ignore" Execute="deferred" />
...
<InstallExecuteSequence>
  ...
  <Custom Action="REGCAPICOM" After="InstallFiles" />
</InstallExecuteSequence>

تحرير:نعم استخدام regsvr32 كما المثبت هو قبيح.ولكن عندما أنا تحميل Capicom SDK ، وهذا هو ما MS قال إلى القيام به من أجل تثبيته.البحث حولها وقد وجدت العديد من الناس يقولون أن هذا هو الغباء طريقة للقيام بذلك...لكنه أيضا آلية MS المقدمة.سوف تستمع إلى اقتراحات أفضل.أنا لا أعتبر ذلك مشكلة كبيرة إذا Capicom الركب عند طلبي إلغاء تثبيت ، معتبرا أن ويندوز القياسية المكون.

تحرير:هممم.على ما يبدو واحدة من الأشياء التي يعمل selfreg على dll هل هو خلق عشوائي إضافة إلى التسجيل.غير متأكد ما هي الآلية يستخدم في توليد هذه البذور ولكن أظن أنه سينظر في الذوق الفقراء فقط توليد واحد نفسي خاصة إذا أعطى جميع المستخدمين في نفس البذور.غير متأكد....على ما يبدو إن تخطي هذه Capicom يفعل ذلك من تلقاء نفسها ، لذلك أنا بخير.

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

المحلول

الطريق الصحيح:

  • c:\Program Files\Microsoft Visual Studio .صافي 2003\Common7 ools\Deployment egcap.exe" /O capicom.reg capicom.dll

  • تشغيل البرنامج من آدم Tengen هو وظيفة هنا.

علما أن الحرارة (و الشحم, IIRC) لا هذا نشر العمل بشكل صحيح على Capicom.

في الطريق الخطأ:

<CustomAction Id="RegisterCapicom" Directory="SystemFolder" ExeCommand="regsvr32.exe /s &quot;[SystemFolder]Capicom.dll&quot;" Return="check" Execute="deferred" />
...
<InstallExecuteSequence>
  <Custom Action="RegisterCapicom" After="InstallFiles" />
</InstallExecuteSequence>

نصائح أخرى

وUHH، هل حقا محاولة تثبيت نظام ويندوز ملف بنفسك؟ وهذا ما لا يسمح على عدد كبير من المستويات. أيضا، REGSVR32.EXE هو SelfReg وSelfReg هو معروف جيدا ليكون الشر في المنشآت. في الواقع باستخدام Windows Installer لكتابة تسجيل هو سوبريوور الآن

ومع ذلك، فإن تصميم كامل هنا هو المشتبه به جدا.

هل يمكن استخدام الحرارة على ملف لإنشاء ملف WXS الإخراج، من شأنها أن تضع المعلومات capicom.dll في التسجيل دون استخدام REGSVR32، عند تنفيذ أس

وشيء مثل ذلك:

heat file [Path\Capicom.dll] -template:product -out capicom.wxs

ثم يضاف إلى capicom.wxs المثبت الخاص بك، في هذا الملف إنشاء عنصر ComponentGroup، الذي يحتوي على عنصر مكون (ق) (ق):

<ComponentGroup Id="capicom">
  <ComponentRef Id="capicom.dll"/>
</ComponentGroup>

وبعد في ملف WXS الرئيسي إضافة عنصر جزء من شأنها ربط عنصر CAPICOM

  

والخطوة الأخيرة هي لإضافة ComponentGroupRef إلى ميزة أنه ينتمي إلى:

<Feature Id="PRODUCTFEATURE">
  <ComponentGroupRef Id="capicom" />
  ... [Other components or ComponentGroups references]
</Feature>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top