كيفية حذف المجلد في إلغاء التثبيت في تطبيق C # .NET؟

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

  •  12-09-2019
  •  | 
  •  

سؤال

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

عندما أقوم بإلغاء تثبيت التطبيق، تتم إزالة جميع المجلدات ولكن "مجلد" ABC "لا يزال هناك.

كيف يمكنني حذف مجلد "ABC" الموجود بخلاف مسار التطبيق؟

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

المحلول

يجب عليك استخدام إجراءات مخصصة لذلك:

  1. أضف مكتبة جديدة ("Custucactions") إلى مشروع الإعداد
  2. إضافة => عنصر جديد => فئة المثبت
  3. قم بالتبديل إلى عرض التعليمات البرمجية وتجاوز طريقة إلغاء التثبيت

رمز:

public override void Uninstall(IDictionary savedState)
{
    base.Uninstall(savedState);

    // Delete folder here.
}

إذا كنت لا ترغب في كتابة طريقة الحذف الخاصة بك إضافة مرجع إلى Microsoft.VisualBasic:

 Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory("C:\\MyFiles", Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
  1. أضف إخراج المشروع (الإخراج الأول) لمشروع Custucactions إلى مشروع الإعداد.
  2. انقر بزر النقر بزر الماوس الأيمن فوق مشروع الإعداد الخاص بك وانقر فوق عرض => الإجراءات المخصصة
  3. انقر بزر الماوس الأيمن فوق Uninstall => إضافة Action Action => مجلد التطبيق => الإخراج الأساسي من الرفض

ملاحظة: مثال رائع على ذلك هنا. وبعد يفسرون هذا المثال بمزيد من التفاصيل. كان هناك شيء غير واضح في هذه الإجابة في البداية هو حقيقة أنه كان عليك إضافة قالب فئة المثبت داخل مشروع التطبيق، وليس مشروع إعداد التطبيق. أساسا يسميه مشروع الإعداد تثبيت ProCS () وإلغاء التثبيت () من أي تطبيق يضاف إلى الإجراءات المخصصة في مشروع الإعداد. تتمثل الفكرة في تجاوز هذين procs لحقن رمز للقيام بمزايدة العطاءات ...

نصائح أخرى

إنشاء مثبت مخصص، يمكنك أن تقرأ هنا لمزيد من التفاصيلتعديلهنا افضل حلقة الوصل, ، العينة في vb.net، ولكن ليس من الصعب فهمها؛)

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

بدلا من ذلك، سيتعين عليك استخدام إجراء مخصص يعمل في تثبيت UN-RETION الذي ستحذفه. أو إنشاء تطبيق مخصص C # الذي يتم تشغيله فقط عند إجراء عدم التثبيت قيد التنفيذ الذي سيحذف المجلد. (أفترض أنك تستخدم بعض المثبت المهني مثل InstallShield)

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