كيف يمكنك الوصول إلى خاصية TargetPlatform في حالة الإطلاق؟

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

سؤال

أحاول الوصول إلى قيمة خاصية TargetPlatform (التي يمكنك تعيينها في مشروع النشر) من الحالة ضمن "حالة الإطلاق".

في الأساس ، أحاول إخبار التطبيق بعدم تثبيت نفسه كتطبيق 32 بت إذا تم تثبيت إصدار 64 بت من Office على هذا الكمبيوتر. لذلك ، أحتاج إلى الحصول على لمة التطبيق بطريقة ما ووضعه في حالة إطلاق.

يمكنني الحصول على لتي من المكتب من السجل ، لكنني لا أعرف كيفية الوصول إلى TargetPlatform من المثبت.

شكرًا!

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

المحلول

هنا رابطان:

من الرابط أعلاه ، يمكنك استنتاج أنه لا يمكنك استهداف كلا النظامين من مثبت MSI. سوف تحتاج إلى اثنين من المثبتات. اعتمادًا على كيفية بناء المثبت ، سيعتمد X86 أو X64 ، على الطريقة التي يفسرها المثبت بعض الثوابت التي تخبر بمكان عدم وجود الملفات - ملفات البرنامج, ، أو ملفات البرنامج (x86).

لا يمكنك تغيير TargetPlatform للمثبت في وقت التشغيل.

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

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

نصائح أخرى

لقد قرأت هذا السؤال عدة مرات الآن ولست متأكدًا بنسبة 100 ٪ من أنني أفهم ما تحاول القيام به. هل لديك تطبيق 32 بت وتريد التثبيت فقط إذا كان لديهم 32 بت مكتب (2010 أفترض) مثبتة؟ هل لديك أيضًا إصدار 64 بت تريد تثبيته إذا تم تثبيت مكتب 64 بت؟

لست متأكدًا من السبب في أنك بحاجة إلى الاهتمام بخاصية TargetPlatform لأنه إذا كنت تعلم أن مكتب 64 بت تم تثبيته ، فيجب أن تكون نظام التشغيل 64 بت. إذا تم تثبيت مكتب 32 بت ، فربما يكون نظام التشغيل 64 بت ولكن هل يهم حقًا؟ قلت إنك اهتمت بتعتث المكتب وليس النوافذ.

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

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

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