كيف نقوم بإنشاء برنامج تثبيت لا يتطلب أذونات المسؤول؟

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

سؤال

عند إنشاء إعداد/MSI باستخدام Visual Studio، هل من الممكن إجراء إعداد لتطبيق بسيط لا يتطلب أذونات المسؤول لتثبيته؟إذا لم يكن ذلك ممكنًا في نظام التشغيل Windows XP، فهل يكون ممكنًا في نظام التشغيل Vista؟

على سبيل المثال، تطبيق بسيط لمعالجة الصور يسمح لك بلصق الصور أعلى الخلفيات.أعتقد أن التثبيت في مجلد Program Files يتطلب أذونات المسؤول؟هل يمكننا التثبيت في المجلد \AppData بدلاً من ذلك؟

الهدف هو إنشاء تطبيق سيتم تثبيته للمستخدمين الذين ليسوا أعضاء في مجموعة المسؤولين على الجهاز المحلي ولن يُظهر مطالبة UAC على نظام التشغيل Vista.

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

تحديث:

هل يمكنك حزم نقرة واحدة بمجرد التثبيت في برنامج التثبيت العادي من نوع setup.exe؟قد تتساءل عن سبب رغبتنا في ذلك - والسبب هو أن لدينا أداة تثبيت تقوم بإجراء فحص مسبق وتثبيت أي شيء مطلوب (مثل .NET) ثم نقوم بتنزيل MSI وتنفيذه.نود أن نعرض شاشة بدء التثبيت العادية أيضًا حتى لو كان هذا هو الشيء الوحيد المعروض.لا نمانع أن يتمكن مستخدم واحد فقط من رؤية التطبيق (المستخدم الذي تم تثبيت التطبيق من أجله).

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

المحلول

ClickOnce هو حل جيد لهذه المشكلة.إذا ذهبت إلى خصائص المشروع > نشر، فيمكنك إعداد الإعدادات لذلك.على وجه الخصوص، من الجيد إلقاء نظرة على "وضع التثبيت والإعدادات":

  • التطبيق متاح عبر الإنترنت فقط - وهو في الواقع تطبيق "يتم تشغيله مرة واحدة".
  • التطبيق متاح أيضًا في وضع عدم الاتصال (يمكن تشغيله من قائمة ابدأ) - يؤدي هذا إلى تثبيت التطبيق على جهاز الكمبيوتر

ليس عليك في الواقع استخدام عناصر نشر الويب ClickOnce.إذا قمت بإجراء Build > Publish، ثم قمت بضغط محتويات مجلد Publish\، فيمكنك توزيع ذلك بشكل فعال كمثبت.ولجعل الأمر أكثر سلاسة، قم بإنشاء أرشيف ذاتي الاستخراج من المجلد الذي يقوم بتشغيل ملف setup.exe تلقائيًا.

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

نصائح أخرى

فيستا هو أكثر مقيد بشأن هذا النوع من الأشياء، لذلك إذا لم تتمكن من القيام بذلك لنظام XP، فيمكنك المراهنة على أن نظام التشغيل Vista لن يسمح لك بذلك أيضًا.

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

لحسن الحظ، إذا كنت تستخدم .Net، فيمكنك استخدام نشر ClickOnce بدلاً من msi، والذي من المفترض أن يسمح لك بالتثبيت في مجلد في الملف الشخصي لكل مستخدم دون الحاجة إلى أذونات المسؤول.

الطريقة الوحيدة التي أعرفها للقيام بذلك هي إنشاء تطبيق ClickOnce في .NET 2.0+

إذا كان مستخدم التطبيق الخاص بك قد قام بتثبيت المتطلبات المسبقة الصحيحة، فيمكن فقط "تشغيل" التطبيق.

الدفع:

إذا تم تمكين UAC، فلن تتمكن من الكتابة إلى ملفات البرنامج.سيؤدي التثبيت على ‎\AppData إلى تثبيت البرنامج لمستخدم واحد فقط.

ومع ذلك، يجب ملاحظة أن أي تغييرات في التكوين تتطلب تغييرات في السجل ربما (يجب أن أتحقق مرة أخرى من ذلك) امتياز المسؤول.يتم تخزين التعديلات التي أجريتها على خلفية سطح المكتب في نهاية المطاف في HKEY_CURRENT_USER.

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