次の方法で共有


InstallException クラス

インストールのコミット、ロールバック、またはアンインストールの各フェーズでエラーが発生したときにスローされる例外。

この型のすべてのメンバの一覧については、InstallException メンバ を参照してください。

System.Object
   System.Exception
      System.SystemException
         System.Configuration.Install.InstallException

<Serializable>
Public Class InstallException   Inherits SystemException
[C#]
[Serializable]
public class InstallException : SystemException
[C++]
[Serializable]
public __gc class InstallException : public SystemException
[JScript]
public
   Serializable
class InstallException extends SystemException

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

使用例

[Visual Basic, C#, C++] InstallException コンストラクタの例と共に、独自のインストーラを持つアセンブリを表示する例を次に示します。インストーラは MyInstaller という名前で、属性 RunInstallerAttribute を持っており、このインストーラが インストーラ ツール (Installutil.exe) によって起動されることを示しています。 インストーラ ツール (Installutil.exe) は、 CommitRollbackInstall 、および Uninstall の各メソッドを呼び出します。 Commit のコードは、アセンブリのインストールがコミットされる前に、 FileDoesNotExist.txt という名前のファイルが存在すると仮定しています。ファイル FileDoesNotExist.txt が存在しない場合、 Commit は、 InstallException を発生させます。同じことは、 FileDoesNotExist.txt という名前のファイルが存在する場合にだけアンインストールが行われる Uninstall にも当てはまります。それ以外の場合は、 InstallException が発生します。 Rollback でコード片が実行されます。このコード片の実行は、例外を発生させる可能性があります。例外が発生した場合、その例外はキャッチされ、渡される例外を使用して InstallException を発生させます。

[Visual Basic, C#, C++] メモ   この例は Installutil.exe を使用して実行します。コマンド プロンプトで次のように入力します。

[Visual Basic, C#, C++] Installutil InstallException.exe

[Visual Basic, C#, C++] または

[Visual Basic, C#, C++] Installutil /u InstallException.exe

 
Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Configuration.Install
Imports System.IO

<RunInstaller(True)> Public Class MyInstaller
   Inherits Installer

   Public Overrides Sub Install(savedState As IDictionary)
      MyBase.Install(savedState)
      Console.WriteLine("Install ...")

     ' Commit is called when install goes through successfully.
     ' Rollback is called if there is any error during Install.
     ' Uncommenting the code below will lead to 'RollBack' being called,
     ' currently 'Commit' shall be called.
     ' throw new IOException();

   End Sub

   Public Overrides Sub Commit(savedState As IDictionary)
      MyBase.Commit(savedState)
      Console.WriteLine("Commit ...")
      ' Throw an error if a particular file doesn't exist.
      If Not File.Exists("FileDoesNotExist.txt") Then
         Throw New InstallException()
      End If
      ' Perform the final installation if the file exists.
   End Sub

   Public Overrides Sub Rollback(savedState As IDictionary)
      MyBase.Rollback(savedState)
      Console.WriteLine("RollBack ...")
      Try
         ' Performing some activity during rollback that raises an 'IOException'.
         Throw New IOException()
      Catch e As Exception
         Throw New InstallException("IOException raised", e)
      End Try
   End Sub 'Rollback
    ' Perform the remaining rollback activites if no exception raised.

   Public Overrides Sub Uninstall(savedState As IDictionary)
      MyBase.Uninstall(savedState)
      Console.WriteLine("UnInstall ...")
      ' Throw an error if a particular file doesn't exist.
      If Not File.Exists("FileDoesNotExist.txt") Then
         Throw New InstallException("The file 'FileDoesNotExist'" + " does not exist")
      End If
      ' Perform the uninstall activites if the file exists.
   End Sub

End Class

' An Assembly that has its own installer.
Public Class MyAssembly1
   Public Shared Sub Main()
      Console.WriteLine("This assembly is just an example for the Installer")
   End Sub
End Class

[C#] 
using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;


[RunInstaller(true)]
public class MyInstaller : Installer
{
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
      Console.WriteLine("Install ...");

      // Commit is called when install goes through successfully.
      // Rollback is called if there is any error during Install.

      // Uncommenting the code below will lead to 'RollBack' being called,
      // currently 'Commit' shall be called.

      // throw new IOException();
   }

   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
      Console.WriteLine("Commit ...");
      // Throw an error if a particular file doesn't exist.
      if(!File.Exists("FileDoesNotExist.txt"))
         throw new InstallException();
      // Perform the final installation if the file exists.
   }

   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
      Console.WriteLine("RollBack ...");
      try
      {
         // Performing some activity during rollback that raises an 'IOException'.
         throw new IOException();
      }
      catch(Exception e)
      {
         throw new InstallException("IOException raised", e);
      }
      // Perform the remaining rollback activites if no exception raised.
   }

   public override void Uninstall(IDictionary savedState)
   {
      base.Uninstall(savedState);
      Console.WriteLine("UnInstall ...");
      // Throw an error if a particular file doesn't exist.
      if(!File.Exists("FileDoesNotExist.txt"))
         throw new InstallException("The file 'FileDoesNotExist'" +
            " does not exist");
      // Perform the uninstall activites if the file exists.
   }
}


// An Assembly that has its own installer.
public class MyAssembly1
{
   public static void Main()
   {
      Console.WriteLine("This assembly is just an example for the Installer");
   }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>
#using <System.Configuration.Install.dll>

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

[RunInstaller(true)]
__gc class MyInstaller : public Installer {
public:
    void Install(IDictionary* savedState) {
        Installer::Install(savedState);
        Console::WriteLine(S"Install ...");

        // Commit is called when install goes through successfully.
        // Rollback is called if there is any error during Install.

        // Uncommenting the code below will lead to 'RollBack' being called,
        // currently 'Commit' shall be called.

        // throw new IOException();
    }

    void Commit(IDictionary* savedState) {
        Installer::Commit(savedState);
        Console::WriteLine(S"Commit ...");
        // Throw an error if a particular file doesn't exist.
        if(!File::Exists(S"FileDoesNotExist.txt"))
            throw new InstallException();
        // Perform the final installation if the file exists.
    }

    void Rollback(IDictionary* savedState) {
        Installer::Rollback(savedState);
        Console::WriteLine(S"RollBack ...");
        try {
            // Performing some activity during rollback that raises an 'IOException*'.
            throw new IOException();
        } catch (Exception* e) {
            throw new InstallException(S"IOException* raised", e);
        }
        // Perform the remaining rollback activites if no exception raised.
    }

    void Uninstall(IDictionary* savedState) {
        Installer::Uninstall(savedState);
        Console::WriteLine(S"UnInstall ...");
        // Throw an error if a particular file doesn't exist.
        if(!File::Exists(S"FileDoesNotExist.txt"))
            throw new InstallException(S"The file 'FileDoesNotExist'  does not exist");
        // Perform the uninstall activites if the file exists.
    }
};

int main() {
    Console::WriteLine(S"This assembly is just an example for the Installer");
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Configuration.Install

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Configuration.Install (System.Configuration.Install.dll 内)

参照

InstallException メンバ | System.Configuration.Install 名前空間 | Commit | Installer | Rollback | Uninstall