سؤال

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

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

وسجل الأخطاء لأس يحتوي على الخطأ التالي:

<اقتباس فقرة>   

خطأ 1723. هناك مشكلة مع   هذه حزمة Windows Installer. A DLL   المطلوبة لهذا التثبيت لاستكمال   لا يمكن تشغيل. الاتصال دعمكم   أفراد أو بائع الحزمة. عمل   ReadLicenseKeyFromFile، دخول:   ReadLicenseKey، مكتبة:   C: \ ويندوز \ المثبت \ MSI4F42.tmp

ولدي ReadLicenseKey وظيفة ضعت إجراء مخصص. يدعى الإجراء المخصص ReadLicenseKeyFromFile.

<Custom Action="ReadLicenseKeyFromFile" After="InstallInitialize">
    REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE
</Custom>

<CustomAction Id="ReadLicenseKeyFromFile" BinaryKey="UnInstallCA.CA.dll" DllEntry="ReadLicenseKey" Execute="immediate" Return="check" />

<Binary Id="UnInstallCA.CA.dll" SourceFile="$(var.UnInstallCA.TargetDir)UnInstallCA.CA.dll" />

وهذا المشروع إجراء مخصص يتم إخراج الملف .CA.dll. لقد حاولت تثبيت الملف كجزء من الإعداد يدويا نسخ لصق الملف، تفعل شيئا لملف ... حاول أساسا كل مزيج ممكن.

ويجب أن يكون هناك شيء أنا في عداد المفقودين، لذا يرجى مساعدة.

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

المحلول

وأنا آسف أن يضيع وقت الجميع على ذلك.

وكان الحل شيئا بدلا بسيطة جدا. كنت قد نسيت أن تضع [CustomAction] السمة على هذا أسلوب معين. حتى على الرغم من أنه كان الإجراء الأخير الذي كنت قد كتبت في ملف CustomAction.cs بلدي، وكان أول واحد ليتم استدعاؤها في InstallExecuteSequence. وبسبب ذلك، وحصلت على تضليل في لأفكر أنه لم أستطع العثور على الملف. حسنا، هذا فضلا عن حقيقة أنني يجب أن يكون نعسان حقا ...

وعلى أي حال، في الوقت الذي تبحث عن الجواب أنا لم يتمكن من تأتي عبر الكثير من الموارد لطيفة، وخاصة <لأ href = "http://blogs.technet.com/alexshev/pages/from-msi-to-wix.aspx "يختلط =" noreferrer "> سلسلة أليكس Shevchuks على WIX . وكان آخر شيء أدركت أنني لا أميل لها لتثبيت ملف dll إجراء مخصص. لدي فقط مرجع له من مشروع WIX بلدي وتوفير مساره. يحصل جزءا لا يتجزأ من دلل في الإعداد وتدفق من هناك عندما الإجراءات إلغاء العرف هو أن يتم استدعاؤها.

نصائح أخرى

هل UnInstallCA.CA.dll الخاص نسخها إلى الجهاز المستهدف خلال تثبيت؟ ويبدو أنه ليس هناك في إلغاء التثبيت.

إذا حصلت هناك - يمكن تشغيله؟ (محاولة تشغيله من الجهاز المستهدف لمعرفة ما اذا كان يمكن أن تفعل ما يفترض القيام به - ربما كنت بحاجة لشحن بعض دلل الآخر الذي تستخدمه من هذا واحد - أو ربما بعض الحزمة القابلة)

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