مشروعان WIX متطابقان تقريبًا - يعمل أحدهما بشكل جيد ، والآخر يفشل في قضية الأمان

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

سؤال

لدي مثبتات WIX لخدمات Windows. يتم تثبيت كلاهما باستخدام نفس بيانات الاعتماد ، ولكن يعمل أحدهما بينما يفشل الآخر مع الخطأ "الخدمة "PCP Processor-3.9.9.0-Wix" (MyServiceExename) لا يمكن تثبيتها. تحقق من أن لديك امتيازات كافية لتثبيت خدمات النظام."أنا أستخدم ملف WXI مشترك لكلا المشروعين مع بيانات الاعتماد لاستخدامه ، لذلك ليس اسم حساب أو اسم المجال المطبعية. الاختلافات الكبيرة الوحيدة بين الخدمتين المثبتتين هي:

  • يحتوي المشروع الفاشل على ملف .licx لمكون الطرف الثالث.
  • مشروع الفشل هو مشروع Winexe. التثبيت الناجح هو exe (تطبيق نمط وحدة التحكم)

بقدر ما أستطيع أن أرى ، لا يوجد فرق حقيقي (من الواضح أن GUIDs مختلفة) بين ملفات WXS للمثبتين. يحتوي المكون الفاشل على رمز تثبيت WIX مثل هذا:

<Component Id="cmpMainExe" Guid="{EXCISED-FOR-CUT-N-PASTERS}">
  <File Id="filASJHDJSDJSHGDJH" Source="$(var.EventPollingService.TargetDir)\EventPollingService.exe" />
  <ServiceInstall Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)"
                  DisplayName="PCP $(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)"
                  Type="ownProcess"
                  Interactive="no"
                  Start="auto"
                  Vital="yes"
                  ErrorControl="normal"
                  Description="Manages the state model of a user's session by handling incoming events from the dialler"
                  Account="$(var.ServiceAccountId)" 
                  Password="$(var.ServiceAccountPwd)" />
  <ServiceControl Id="StartWixServiceInstaller"
                  Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)"
                  Start="install"
                  Wait="yes" />
  <ServiceControl Id="StopWixServiceInstaller"
                  Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)"
                  Stop="both" Wait="yes"
                  Remove="uninstall" />
</Component>

أنا أستخدم WIX 3.5 مع نذري في VS 2010 ، وكلا المشروعين هي .NET 3.5 SP1. أنا أستخدم Windows 7 ، مع إيقاف تشغيل UAC.

أيه أفكار؟

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

المحلول

انظر إلى اثنين من بناء MSI في ORCA من Windows SDK والتحقق من إدخالات جدول الخدمة تبدو كما هي.

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

فكرتان أخيرة:

إذا كان للبرنامج تبعيات على WINSXS أو GAC ، فلن يعمل ذلك لأنها لا يتم تثبيتها حتى تنفيذ الالتزام الذي يتم بعد محاولة بدء الخدمة

إذا كنت بحاجة إلى منح حقوق المستخدم LogonAsservice ، فابحث عن عنصر المستخدم في WIX.

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