TransactedInstaller.Uninstall-Methode
Entfernt eine Installation.
Namespace: System.Configuration.Install
Assembly: System.Configuration.Install (in system.configuration.install.dll)
Syntax
'Declaration
Public Overrides Sub Uninstall ( _
savedState As IDictionary _
)
'Usage
Dim instance As TransactedInstaller
Dim savedState As IDictionary
instance.Uninstall(savedState)
public override void Uninstall (
IDictionary savedState
)
public:
virtual void Uninstall (
IDictionary^ savedState
) override
public void Uninstall (
IDictionary savedState
)
public override function Uninstall (
savedState : IDictionary
)
Parameter
- savedState
Ein IDictionary mit Informationen über den Zustand, in dem sich der Computer nach Abschluss der Installation befindet.
Hinweise
Rufen Sie diese Methode auf, um eine bereits abgeschlossene Installation zu entfernen. Mit dieser Uninstall-Methode wird die Uninstall-Methode für alle Installationsprogramme in der Installers-Eigenschaft aufgerufen, damit alle während der Installation festgelegten Ressourcen deinstalliert werden. Alle während der Deinstallation auftretenden Ausnahmen werden ignoriert.
Hinweis
Der Zustand, in dem sich der Computer nach den Installationen befindet, wird zwar von der Install-Methode und der Commit-Methode gespeichert. Die Datei, die das IDictionary aus dem savedState-Parameter enthält, wurde jedoch möglicherweise nach Abschluss der Installation gelöscht. Wenn die Datei gelöscht wurde, ist der savedState-Parameter NULL (Nothing in Visual Basic).
Beispiel
Das folgende Beispiel veranschaulicht die Methoden TransactedInstaller, Install und Uninstall der TransactedInstaller-Klasse.
Dieses Beispiel enthält eine Implementierung, die der von Installer-Tool (Installutil.exe) ähnlich ist. Darin werden Assemblys mit den der betreffenden Assembly vorangestellten Optionen installiert. Wenn für eine Assembly keine Option angegeben ist, werden die Optionen der vorhergehenden Assembly verwendet, wenn eine solche in der Liste vorhanden ist. Wenn die Option "/u" oder die Option "/uninstall" angegeben wird, werden die Assemblys deinstalliert. Wenn die Option "/?" bzw. "/help" angegeben wird, werden die Hilfeinformationen auf der Konsole angezeigt.
Dim options As New ArrayList()
Dim myOption As String
Dim toUnInstall As Boolean = False
Dim toPrintHelp As Boolean = False
Dim myTransactedInstaller As New TransactedInstaller()
Dim myAssemblyInstaller As AssemblyInstaller
Dim myInstallContext As InstallContext
Try
Dim i As Integer
For i = 1 To args.Length - 1
' Process the arguments.
If args(i).StartsWith("/") Or args(i).StartsWith("-") Then
myOption = args(i).Substring(1)
' Determine whether the option is to 'uninstall' an assembly.
If String.Compare(myOption, "u", True) = 0 Or _
String.Compare(myOption,"uninstall", True) = 0 Then
toUnInstall = True
GoTo ContinueFor1
End If
' Determine whether the option is for printing help information.
If String.Compare(myOption, "?", True) = 0 Or _
String.Compare(myOption, "help", True) = 0 Then
toPrintHelp = True
GoTo ContinueFor1
End If
' Add the option encountered to the list of all options
' encountered for the current assembly.
options.Add(myOption)
Else
' Determine whether the assembly file exists.
If Not File.Exists(args(i)) Then
' If assembly file doesn't exist then print error.
Console.WriteLine(ControlChars.Newline + _
"Error : {0} - Assembly file doesn't exist.", args(i))
Return
End If
' Create a instance of 'AssemblyInstaller' that installs the given assembly.
myAssemblyInstaller = New AssemblyInstaller(args(i), _
CType(options.ToArray(GetType(String)), String()))
' Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
myTransactedInstaller.Installers.Add(myAssemblyInstaller)
End If
ContinueFor1:
Next i
' If user requested help or didn't provide any assemblies to install
' then print help message.
If toPrintHelp Or myTransactedInstaller.Installers.Count = 0 Then
PrintHelpMessage()
Return
End If
' Create a instance of 'InstallContext' with the options specified.
myInstallContext = New InstallContext("Install.log", _
CType(options.ToArray(GetType(String)), String()))
myTransactedInstaller.Context = myInstallContext
' Install or Uninstall an assembly depending on the option provided.
If Not toUnInstall Then
myTransactedInstaller.Install(New Hashtable())
Else
myTransactedInstaller.Uninstall(Nothing)
End If
Catch e As Exception
Console.WriteLine(ControlChars.Newline + "Exception raised : {0}", e.Message)
End Try
ArrayList myOptions = new ArrayList();
String myOption;
bool toUnInstall = false;
bool toPrintHelp = false;
TransactedInstaller myTransactedInstaller = new TransactedInstaller();
AssemblyInstaller myAssemblyInstaller;
InstallContext myInstallContext;
try
{
for(int i = 0; i < args.Length; i++)
{
// Process the arguments.
if(args[i].StartsWith("/") || args[i].StartsWith("-"))
{
myOption = args[i].Substring(1);
// Determine whether the option is to 'uninstall' an assembly.
if(String.Compare(myOption, "u", true) == 0 ||
String.Compare(myOption, "uninstall", true) == 0)
{
toUnInstall = true;
continue;
}
// Determine whether the option is for printing help information.
if(String.Compare(myOption, "?", true) == 0 ||
String.Compare(myOption, "help", true) == 0)
{
toPrintHelp = true;
continue;
}
// Add the option encountered to the list of all options
// encountered for the current assembly.
myOptions.Add(myOption);
}
else
{
// Determine whether the assembly file exists.
if(!File.Exists(args[i]))
{
// If assembly file doesn't exist then print error.
Console.WriteLine("\nError : {0} - Assembly file doesn't exist.",
args[i]);
return;
}
// Create a instance of 'AssemblyInstaller' that installs the given assembly.
myAssemblyInstaller =
new AssemblyInstaller(args[i],
(string[]) myOptions.ToArray(typeof(string)));
// Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
myTransactedInstaller.Installers.Add(myAssemblyInstaller);
}
}
// If user requested help or didn't provide any assemblies to install
// then print help message.
if(toPrintHelp || myTransactedInstaller.Installers.Count == 0)
{
PrintHelpMessage();
return;
}
// Create a instance of 'InstallContext' with the options specified.
myInstallContext =
new InstallContext("Install.log",
(string[]) myOptions.ToArray(typeof(string)));
myTransactedInstaller.Context = myInstallContext;
// Install or Uninstall an assembly depending on the option provided.
if(!toUnInstall)
myTransactedInstaller.Install(new Hashtable());
else
myTransactedInstaller.Uninstall(null);
}
catch(Exception e)
{
Console.WriteLine("\nException raised : {0}", e.Message);
}
array<String^>^ args = Environment::GetCommandLineArgs();
ArrayList^ myOptions = gcnew ArrayList;
String^ myOption;
bool toUnInstall = false;
bool toPrintHelp = false;
TransactedInstaller^ myTransactedInstaller = gcnew TransactedInstaller;
AssemblyInstaller^ myAssemblyInstaller;
InstallContext^ myInstallContext;
try
{
for ( int i = 1; i < args->Length; i++ )
{
// Process the arguments.
if ( args[ i ]->StartsWith( "/" ) || args[ i ]->StartsWith( "-" ) )
{
myOption = args[ i ]->Substring( 1 );
// Determine whether the option is to 'uninstall' an assembly.
if ( String::Compare( myOption, "u", true ) == 0 ||
String::Compare( myOption, "uninstall", true ) == 0 )
{
toUnInstall = true;
continue;
}
// Determine whether the option is for printing help information.
if ( String::Compare( myOption, "?", true ) == 0 ||
String::Compare( myOption, "help", true ) == 0 )
{
toPrintHelp = true;
continue;
}
// Add the option encountered to the list of all options
// encountered for the current assembly.
myOptions->Add( myOption );
}
else
{
// Determine whether the assembly file exists.
if ( !File::Exists( args[ i ] ) )
{
// If assembly file doesn't exist then print error.
Console::WriteLine( "\nError : {0} - Assembly file doesn't exist.",
args[ i ] );
return 0;
}
// Create a instance of 'AssemblyInstaller' that installs the given assembly.
myAssemblyInstaller =
gcnew AssemblyInstaller( args[ i ],
(array<String^>^)( myOptions->ToArray( String::typeid ) ) );
// Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
myTransactedInstaller->Installers->Add( myAssemblyInstaller );
}
}
// If user requested help or didn't provide any assemblies to install
// then print help message.
if ( toPrintHelp || myTransactedInstaller->Installers->Count == 0 )
{
PrintHelpMessage();
return 0;
}
// Create a instance of 'InstallContext' with the options specified.
myInstallContext =
gcnew InstallContext( "Install.log",
(array<String^>^)( myOptions->ToArray( String::typeid ) ) );
myTransactedInstaller->Context = myInstallContext;
// Install or Uninstall an assembly depending on the option provided.
if ( !toUnInstall )
{
myTransactedInstaller->Install( gcnew Hashtable );
}
else
{
myTransactedInstaller->Uninstall( nullptr );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "\nException raised : {0}", e->Message );
}
ArrayList myOptions = new ArrayList();
String myOption;
boolean toUnInstall = false;
boolean toPrintHelp = false;
TransactedInstaller myTransactedInstaller = new TransactedInstaller();
AssemblyInstaller myAssemblyInstaller;
InstallContext myInstallContext;
try {
for (int i = 0; i < args.length; i++) {
// Process the arguments.
if (args[i].StartsWith("/") || args[i].StartsWith("-")) {
myOption = args[i].Substring(1);
// Determine whether the option is to 'uninstall' an
// assembly.
if (String.Compare(myOption, "u", true) == 0
|| String.Compare(myOption, "uninstall", true) == 0) {
toUnInstall = true;
continue;
}
// Determine whether the option is for printing help
// information.
if (String.Compare(myOption, "?", true) == 0
|| String.Compare(myOption, "help", true) == 0) {
toPrintHelp = true;
continue;
}
// Add the option encountered to the list of all options
// encountered for the current assembly.
myOptions.Add(myOption);
}
else {
// Determine whether the assembly file exists.
if (!(File.Exists(args[i]))) {
// If assembly file doesn't exist then print error.
Console.WriteLine("\nError : {0} - Assembly file"
+ " doesn't exist.", args[i]);
return;
}
// Create a instance of 'AssemblyInstaller' that installs
// the given assembly.
myAssemblyInstaller = new AssemblyInstaller(args[i],
((String[])(myOptions.ToArray(String.class.ToType()))));
// Add the instance of 'AssemblyInstaller' to the
// 'TransactedInstaller'.
myTransactedInstaller.get_Installers().
Add(myAssemblyInstaller);
}
}
// If user requested help or didn't provide any assemblies to install
// then print help message.
if (toPrintHelp
|| myTransactedInstaller.get_Installers().get_Count() == 0) {
PrintHelpMessage();
return;
}
// Create a instance of 'InstallContext' with the options specified.
myInstallContext = new InstallContext("Install.log",
(String[])myOptions.ToArray(String.class.ToType()));
myTransactedInstaller.set_Context(myInstallContext);
// Install or Uninstall an assembly depending on the option provided.
if (!(toUnInstall)) {
myTransactedInstaller.Install(new Hashtable());
}
else {
myTransactedInstaller.Uninstall(null);
}
}
catch (System.Exception e) {
Console.WriteLine("\nException raised : {0}", e.get_Message());
}
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
TransactedInstaller-Klasse
TransactedInstaller-Member
System.Configuration.Install-Namespace
Install
Commit
Rollback
InstallerCollection-Klasse
Installer.Installers-Eigenschaft