كيفية تصحيح فشل إجراء مخصص في مشروع MSI / الإعداد
سؤال
لعمل مخصص، أعرض على الاسم إلى xmlpreprocess.exe (أداة Codeplex)
والحجج إلى: / x: [SettingsFile] /I :" BudapTargetDirplweb.config "/ e: [jasionetton
من المفترض أن يكون SettingSfile قادما من صفحة نموذج مخصص، ويتمثل البيئة هي قيمة أحد أزرار الراديو الخاصة بي.
هل هناك أي طريقة للحصول على إعادة التوجيه للعمل؟ لا يخلق ملف .log. هل هناك أي طريقة أخرى لرؤية نتائج الإجراء المخصص؟ كيف يمكنني حتى أن أؤكد حتى لو هرب؟ ماذا لو كنت أرغب في معرفة ما تم إرساله بهاته إليه؟
تحديث 3: - لمزيد من السيناريوهات لما حاولت، انظر هنا:http://xmlpreprocess.codeplex.com/thread/view.aspx؟threadid=79454.
شكرا،
نيل
تحديث: لقد كتبت للتو VBScript Quickie للتحقق من موقعي.
dim fso, oFile
set fso = Createobject("Scripting.FileSystemObject")
set oFile = fso.CreateTextFile("VBScriptOut.txt")
if WScript.Arguments.Count < 2 then
oFile.Writeline("Number of arguments was only = " & WScript.Arguments.Count)
else
oFile.WriteLine("SETTINGSFILE=" & WScript.Arguments.Item(0))
oFile.WriteLine("ENVIRONMENTBUTTON=" & WScript.Arguments.Item(1))
end if
oFile.close
لم يتم إنشاء No vBScriptout.txt، لذلك لا أعتقد أنه قد ركض حتى (لذلك تخميني هو xmlpreprocess ليس قيد التشغيل أيضا).
لقد قمت بتضمين ملف Installerverification.vbs كإجراء مخصص ضمن "تثبيت". قمت بتعيين الحالة = صحيح في نافذة الخصائص. قمت بتعيين CustomActionData إلى: [SettingsFile] [EnventyButton
تحديث 2: لقد أدركت الآن حالة لا ينبغي أن تكون "صحيحة". أنا إما فارغه أو تعيينه إلى "غير مثبت".
أحصل على خطأ غير مفسر على xmlpreprocess، ولا يمكنني تشغيل VBScript. حاولت تشغيلها أيضا مع cscript64.exe.
المحلول
فقط موجه الأوامر (والأدوات الأخرى العرضية الأخرى) استخدم رمز أكبر من الرموز للإشارة إلى إعادة توجيه الإخراج. يتطلب Windows Installer API CreateProcess Win32 الذي لا يعالج هذا الرمز. وبالتالي فإن محاولتك لتسجيل النتائج لن تعمل. ربما يمكنك إعادة كتابة الأمر الخاص بك لتبدو cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log
(قد تكون هناك حاجة لبعض الاقتباس الإضافي).
لأغراض تصحيح الأخطاء، يمكنك عموما الحصول على مزيد من المعلومات عن طريق إجراء سجل حرفي لعملية التثبيت. سيتضمن قائمة بالخصائص، والإجراءات المخصصة التي أطلقتها ورموز الإرجاع الخاصة بهم. أعتقد أنه سيتضمن حتى سطر الأوامر المنسق بالكامل مرت إلى التطبيق في قضيتك.
كما تقول في التحديث 2، لاحظ أن حالة True
في الواقع يعني البحث عن ما إذا كانت خاصية الاسم True
ويعرف. إذا كنت تريد شيئا صحيحا دائما، فاستخدم القيمة 1
.