WiX 3.0 يلقي خطأ 217 ، في حين يجري تنفيذها من خلال التكامل المستمر

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

سؤال

هذا هو الخطأ الذي طرح من قبل لدينا الآلي بناء جناح على ويندوز 2008 ، في حين تعمل الثلوج (بعد الهجرة من WiX 2.0 WiX 3.0):

LGHT0217:خطأ في تنفيذ الجليد العمل 'ICE01'.السبب الأكثر شيوعا من هذا النوع من الآيس الفشل هو غير صحيح تسجيل محرك البرمجة.انظر http://wix.sourceforge.net/faq.html#Error217 لمزيد من التفاصيل و كيفية حل هذه المشكلة.السلسلة التالية شكل لم يكن متوقعا من قبل الخارجية واجهة المستخدم رسالة المسجل:"خدمة Windows Installer لا يمكن الوصول إليها.ويمكن أن تحدث هذه المشكلة إذا كان Windows Installer ليست مثبتة بشكل صحيح.اتصل بأفراد الدعم للحصول على المساعدة.".في light.exe(0, 0)

بالإضافة إلى ذلك, هذه هي الأخطاء التي تظهر في سجل الأحداث:

MSIInstaller:فشل الاتصال إلى الملقم.خطأ:0x80070005 المنتج:[اسم المنتج] -- خطأ 1719.خدمة Windows Installer لا يمكن الوصول إليها.ويمكن أن تحدث هذه المشكلة إذا كان Windows Installer ليست مثبتة بشكل صحيح.اتصل بأفراد الدعم للحصول على المساعدة.

حدسي:

  • VBScript و JScript سجلت تحت الادارة.
  • خدمة التكامل لديه أذونات التفاعل مع سطح المكتب و جميع الملفات
  • يبني النجاح ، عندما تنفيذها يدويا على نفس الجهاز من قبل مستخدم آخر أو حتى المستخدم بتسجيل الدخول في حساب التكامل (عبر RDP)

أنا من الأفكار حتى الآن.

كيف يمكنني حل هذه المشكلة مع الحفاظ على الجليد التصديق ؟

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

المحلول

نهاية القصة:

بعد تافه مع أذونات التكامل الحساب ، DCOM, تفعيل الخدمة, الخ.دون أي حظ ، وأخيرا ببساطة تعطيل الجليد التحقق في التكامل المستمر بناء, في حين لا يزال الحفاظ عليه في بناء المحلي.

لتعطيل الجليد التحقق يمكنك تعيين SuppressValidation إلى true في .wixproj الملف:

    <PropertyGroup>
        <SuppressValidation>true</SuppressValidation>
    </PropertyGroup>

أو تمرير -sval خيار سطر الأوامر إلى light.exe.

نصائح أخرى

إضافة TFS بناء وحدة تحكم حساب المسؤول المحلي مجموعة وإعادة تشغيل خدمة windows العمل بالنسبة لي.

لقد وجدت الجذري.لقد حاولت كل شيء وجدت ، بما في ذلك العرف المصادقة التمديد على غرار واحد نشر في Re:[WiX المستخدمين] light.exe فشل بشكل عشوائي عند تشغيل المركز..

انها ليست مسألة التزامن كما اقترح في مختلف المواضيع.انها سبب كبير جدا في عملية كتلة البيئة (PEB).

اتضح Windows Installer لا يمكن التعامل مع بيئة عملية كتلة أكبر من 32 كيلو بايت.في البيئة ، ويرجع ذلك إلى عدد من المتغيرات التي وضعتها بناء نظام حجمها (على سبيل المثال ، المتغير PATH التي تحتوي على العديد من القيم المكررة), PEB كان حوالي 34 كيلو بايت.

ومن المثير للاهتمام, في متغيرات البيئة, ويندوز XP و 2003 كان من الصعب الحد من PEB تعيين 32 كيلو بايت.التي ربما تسبب سهلة الصيد بناء كسر في مرحلة سابقة من بناء.أحدث ويندوز' لا يملك مثل هذا الحد ، ولكن أعتقد أن ويندوز المثبت المطورين محدودة بيئتها الداخلية المخازن المؤقتة إلى 32 kB و فشل بأمان عندما تكون القيمة تجاوزها.

المشكلة يمكن أن تتكرر بسهولة:

  • إنشاء .bat الذي يحدد متغيرات البيئة التي يتجاوز حجم 32 كيلو بايت.على سبيل المثال ، يمكن أن يكون 32 خطوط set Variable<number>=<text longer than 1024 characters>
  • إطلاق cmd.exe
  • تنفيذ ملف دفعي قمت بإنشائه
  • من نفس cmd.exe نافذة:
    • محاولة بناء حزمة MSI باستخدام WiX مع الثلج التحقق من صحة أو
    • تشغيل smoke.exe للتحقق من حزمة الخاص بك أو
    • ببساطة تشغيل msiexec /i Package.msi
  • كل ما سبق الأوامر في نهاية المطاف التقارير Error 1719 - Windows Installer could not be accessed.

لذا الحل هو مراجعة بناء البرامج النصية والحد من عدد وحجم متغيرات البيئة بحيث تناسب 32 كيلو بايت.يمكنك بسهولة التحقق من النتائج من خلال تشغيل:

set > environment.txt

الهدف هو الحصول على الملف environment.txt أصغر ~30 كيلوبايت.

الوصف الصحيح (من دون حل ، إلا إذا مضيفا CruiseControl الحساب إلى مجموعة المسؤولين المحليين يمكن أن تمر كحل) المشكلة:

اقتباس من Wix 3.5 & تحكم أوتوماتيكي يعطي errorLGHT0217:

الجليد التحقق من صحة يحتاج تفاعلية حساب أو امتيازات المسؤول أن سعيد.انظر على سبيل المثال WiX المشاريع مقابلTFS 2010 فريق بناء (2009-11-14) أو Re:[WiX المستخدمين] مساعدة في بناء التصحيح (2009-11-20).

imagi هو على حق تماما!أنا لا يمكن أن نعتقد أن هذا هو الجواب الصحيح.Supressing التحقق مما يجعل TFS مدير المستخدم لا حلول جيدة.بالإضافة إلى أنني لا يمكن أن تجد NT\السلطة إضافة إلى مجموعة المسؤولين و كنت عالقة في هذا.

حصلت نفس خطأ في نظام التشغيل Windows Server 2012 Datacenter عامل بناء.لحل المشكلة :

  1. قائمة البند
  2. انتقل إلى متغيرات البيئة على عامل بناء آلة
  3. إنشاء اثنين من متغيرات النظام
  4. "PF86" الذي يساوي "C:\Program Files (x86)"
  5. "PF" الذي يساوي "C:\Program Files"
  6. فهي قصيرة جدا لأنني أريد أن حفظ الأحرف.أنا قدمت لهم دون مائل النهائي لأن درجة الحرارة ، TMP وغيرها وقدمت لذلك قررت التمسك MS القياسية لهذه المتغيرات.
  7. تحرير المتغير عن طريق استبدال كل "C:\Program Files (x86)" مع %PF86% و كل "C:\Program Files" مع %PF%
  8. إغلاق وإعادة بناء والتمتع به!
  9. عملت بالنسبة لي.:)

من http://wix.sourceforge.net/faq.html#Error217:

في WiX v3, هواء يعمل تلقائيا التحقق من صحة-- Windows Installer الاتساق الداخلي المقيمين (ICEs) - بعد كل نجاح بناء.التحقق من صحة هو طريقة رائعة للقبض مشتركة التأليف الأخطاء التي يمكن أن تؤدي إلى مشاكل الخدمات ، والذي هو السبب في أنه من الآن تشغيل بشكل افتراضي.للأسف هناك قضية مشتركة التي تحدث في نظام التشغيل Windows Vista و Windows Server 2008 التي يمكن أن تسبب الثلوج إلى تفشل.للحصول على تفاصيل حول سبب وكيفية إصلاحه ، انظر هيث ستيوارت بلوق و هارون Stebner مدونة.

لقد كان الحصول على نفس الآيس خطأ ، ولكن المشكلة تحولت إلى تلف خدمة Windows Installer.هذا الحل عملت بالنسبة لي:http://support.microsoft.com/kb/315353

  1. تسجيل الدخول إلى الكمبيوتر كمسؤول.
  2. انقر فوق ابدأ ثم انقر فوق تشغيل.
  3. في المربع فتح اكتب cmd ثم انقر فوق موافق.
  4. في موجه الأوامر, اكتب msiexec.exe /إلغاء تسجيل ثم ثم اضغط ENTER.
  5. اكتب msiexec /regserver ثم ثم اضغط ENTER.
  6. إعادة تشغيل ويندوز

أيضا, تحقق من أن حساب النظام لديه السيطرة الكاملة على أذونات الوصول إلى HKEY_CLASSES_ROOT خلية في سجل ويندوز.في بعض الحالات قد يكون لديك أيضا لإضافة حسابات المسؤول.

لدي بعض الاقتراحات.

  • حاول تحديث Microsoft Installer الإصدار على بناء الخادم
  • تأكد من استخدام أحدث إصدار من WiX 3.0, لأنه 3.0 الإصدار مستقرة الآن.
  • إذا فشل كل شيء آخر, حاول تشغيل بناء الخدمة في إطار محدد بناء المستخدم الذي يمكن كمان مع أذونات...

أنا واجهت نفس المشكلة و لم ترغب في قمع الآيس التحقق من الصحة.بلدي الإعداد:هذا هو بلدي الكمبيوتر عامل بناء في Visual Studio على الانترنت (VSO).الحل هو تغيير حساب المستخدم لتشغيل الخدمة على الجهاز الخاص بي.بدلا من استخدام خدمة الشبكة المحلية أو خدمة أنا ببساطة جعل خدمة تسجيل الدخول مع حساب بلدي الذي كان جميع الحقوق اللازمة.

اذهب إلى بناء آلة إعادة تشغيل خدمة Windows Installer

أيا من الاقتراحات المذكورة أعلاه عملت بالنسبة لي, بالنسبة لي مكافحة الفيروسات (مكافي) جاء في الصورة و يبدو أنه تحديث vbscript.dll التسجيل الدخول إلى موقع DLL الخطأ.هذه هي الأشياء أن نأخذ في الاعتبار:

  1. بعض WiX الجليد التصديقات يتم تنفيذها باستخدام VBSCRIPT.
  2. حتى أثناء ترجمة MSI ، بناء الخادم سوف تحتاج إلى الوصول إلى c:\windows\system32\vbscript.dll.
  3. وهناك احتمالات أن بطريقة ما على المستخدم أن يعمل الخاصة بك بناء فقدت الوصول إلى هذا DLL.
  4. كما ذكر في أعلاه إجابات ابحث عن المشرف الدخول/تسجيل الدخول تأكد من أن المستخدم لديه.

هنا هي الخطوات التي أخذتها لحل المشكلة:

  1. افتح cmd (run as admin) على عامل بناء آلة.
  2. تشغيل RegEdit
  3. حدد جذر ، ثم اضغط على ctrl + f و ابحث عن إدخال التسجيل التالي :{B54F3741-5B07-11cf-A4B0-00AA004A55E8}
  4. البحث عن InprocServer32\المفتاح الافتراضي

enter image description here

  1. على بناء وكيل الطريق تم استبدال مع mcafee موقع DLL.لقد قمت بتحديث طريق العودة إلى c:\windows\system32\vbscript.dll
  2. تحرير إدخال التسجيل لم يكن سهلا ، كما كان المحمية إدخال التسجيل.أنا استخدم الرابط أدناه للحصول على أذونات الوصول تغير قبل أن أتمكن من تحرير العقار: تحرير المحمية إدخال التسجيل

بمجرد تحديث مسار كل شيء بدأ العمل على النحو المعتاد.

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