Sdílet prostřednictvím


UninstallAction Výčet

Definice

Určuje, co má instalační program dělat během odinstalace.

public enum class UninstallAction
public enum UninstallAction
type UninstallAction = 
Public Enum UninstallAction
Dědičnost
UninstallAction

Pole

NoAction 1

Ponechá prostředek vytvořený instalačním programem tak, jak je.

Remove 0

Odebere prostředek vytvořený instalačním programem.

Příklady

Následující ukázka vytvoří vlastní odinstalační program, který dědí Installer třídu . V přepsané Uninstall funkci UninstallAction je výčet nastaven na základě vstupu uživatele. Pokud je vstup "n", vlastní odinstalační program v protokolu událostí zadaném uživatelem s prostředkem neprovede žádnou akci. V opačném případě odebere prostředek z protokolu událostí.

#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Configuration::Install;

[RunInstaller(true)]
ref class MyUninstallActionClass: public Installer
{
private:
   EventLogInstaller^ myInstaller;

public:
   MyUninstallActionClass()
   {
      myInstaller = gcnew EventLogInstaller;
   }


   // Override the 'Install' method.
   virtual void Install( IDictionary^ savedState ) override
   {
      Console::Write( "Enter a new log to create (eg: MyLog): " );
      myInstaller->Log = Console::ReadLine();
      Console::Write( "Enter a source for log (eg: MySource): " );
      myInstaller->Source = Console::ReadLine();
      Installers->Add( myInstaller );
      Installer::Install( savedState );
   }


   // Override the 'Commit' method.
   virtual void Commit( IDictionary^ savedState ) override
   {
      Installer::Commit( savedState );
   }


   // Override the 'Rollback' method.
   virtual void Rollback( IDictionary^ savedState ) override
   {
      Installer::Rollback( savedState );
   }


   virtual void Uninstall( IDictionary^ savedState ) override
   {
      Console::Write( "Enter a source from log to uninstall(eg: MySource): " );
      myInstaller->Source = Console::ReadLine();
      Console::Write( "Do you want to uninstall, press 'y' for 'YES' and 'n' for 'NO':" );
      String^ myUninstall = Console::ReadLine();
      if ( myUninstall->Equals( "n" ) )
      {
         
         // No action to be taken on the resource in the event log.
         myInstaller->UninstallAction = UninstallAction::NoAction;
      }
      else
      {
         
         // Remove the resource from the event log.
         myInstaller->UninstallAction = UninstallAction::Remove;
      }

      Installers->Add( myInstaller );
      Installer::Uninstall( savedState );
   }

};

int main()
{
   Console::WriteLine( "Syntax for install: installutil.exe UninstallAction_NoAction_Remove_3.exe " );
   Console::WriteLine( "Syntax for uninstall: installutil.exe /u UninstallAction_NoAction_Remove_3.exe " );
}
using System;
using System.Diagnostics;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

[RunInstaller(true)]
public class MyUninstallActionClass : Installer
{
   EventLogInstaller myInstaller = new EventLogInstaller();

   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      Console.Write("Enter a new log to create (eg: MyLog ): ");
      myInstaller.Log = Console.ReadLine();
      Console.Write("Enter a source for log (eg: MySource ): ");
      myInstaller.Source = Console.ReadLine();
      Installers.Add( myInstaller );
      base.Install(savedState);
   }

   // Override the 'Commit' method.
   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
   }

   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
   }
   public override void Uninstall(IDictionary savedState)
   {
      Console.Write("Enter a source from log to uninstall(eg: MySource ): ");
      myInstaller.Source = Console.ReadLine();

      Console.Write("Do you want to uninstall, press 'y' for 'YES' and 'n' for 'NO':");
      string myUninstall = Console.ReadLine();

      if( myUninstall == "n" )
      {
         // No action to be taken on the resource in the event log.
         myInstaller.UninstallAction = System.Configuration.Install.UninstallAction.NoAction;
      }
      else
      {
         // Remove the resource from the event log.
         myInstaller.UninstallAction = System.Configuration.Install.UninstallAction.Remove;
      }
      Installers.Add( myInstaller );
      base.Uninstall(savedState);
   }
   public static void Main()
   {
      Console.WriteLine("Syntax for install: installutil.exe UninstallAction_NoAction_Remove_3.exe ");
      Console.WriteLine("Syntax for uninstall: installutil.exe /u "
         +"UninstallAction_NoAction_Remove_3.exe ");
   }
}
Imports System.Diagnostics
Imports System.Collections
Imports System.ComponentModel
Imports System.Configuration.Install

<RunInstaller(True)>  _
Public Class MyUninstallActionClass
   Inherits Installer
   Private myInstaller As New EventLogInstaller()

   ' Override the 'Install' method.
   Public Overrides Sub Install(savedState As IDictionary)
      Console.Write("Enter a new log to create (eg: MyLog ): ")
      myInstaller.Log = Console.ReadLine()
      Console.Write("Enter a source for log (eg: MySource ): ")
      myInstaller.Source = Console.ReadLine()
      Installers.Add(myInstaller)
      MyBase.Install(savedState)
   End Sub

   ' Override the 'Commit' method.
   Public Overrides Sub Commit(savedState As IDictionary)
      MyBase.Commit(savedState)
   End Sub

   ' Override the 'Rollback' method.
   Public Overrides Sub Rollback(savedState As IDictionary)
      MyBase.Rollback(savedState)
   End Sub

   Public Overrides Sub Uninstall(savedState As IDictionary)

      Console.Write("Enter a source from log to uninstall(eg: MySource ): ")
      myInstaller.Source = Console.ReadLine()

      Console.Write("Do you want to uninstall, press 'y' for 'YES' and 'n' for 'NO':")
      Dim myUninstall As String = Console.ReadLine()

      If myUninstall = "n" Then
         ' No action to be taken on the resource in the event log.
         myInstaller.UninstallAction = System.Configuration.Install.UninstallAction.NoAction
      Else
         ' Remove the resource from the event log.
         myInstaller.UninstallAction = System.Configuration.Install.UninstallAction.Remove
      End If
      Installers.Add(myInstaller)
      MyBase.Uninstall(savedState)
   End Sub

   Public Shared Sub Main()
      Console.WriteLine("Syntax for install: installutil.exe "+ _
                        "UninstallAction_NoAction_Remove_3.exe ")
      Console.WriteLine("Syntax for uninstall: installutil.exe /u " + _
                        "UninstallAction_NoAction_Remove_3.exe ")
   End Sub

End Class

Platí pro

Viz také