Freigeben über


Exemplarische Vorgehensweise: Vorkompilieren einer Assembly mit einer benutzerdefinierten Aktion bei der Installation

Aktualisiert: November 2007

Mit benutzerdefinierten Aktionen können zusätzliche Aktionen angegeben werden, die zum Abschluss einer Installation auf einem Zielcomputer ausgeführt werden sollen. In dieser exemplarischen Vorgehensweise wird beispielsweise der Pfadname einer DLL an die CustomActionData-Eigenschaft übergeben, damit die Assembly während der Installation in systemeigenen Code vorkompiliert wird.

Hinweis:

Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen hierzu finden Sie unter Visual Studio-Einstellungen.

Hinweis:

In den folgenden Schritten wird die Erstellung eines Bereitstellungsprojekts mithilfe eines Visual Basic-Projekts beschrieben; die allgemeinen Prinzipien gelten für alle Visual Studio-Sprachprojekte, die die Bereitstellung von Windows-Anwendungen unterstützen.

So erstellen Sie die Klasse für benutzerdefinierte Aktionen

  1. Klicken Sie im Menü Datei unter Neu auf den Befehl Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt aus dem Bereich Projekttyp den Eintrag Visual Basic-Projekte. Wählen Sie anschließend aus dem Bereich Vorlagen den Eintrag Klassenbibliothek. Geben Sie im Feld Name die Zeichenfolge InstallClass ein.

  3. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  4. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Installerklasse. Geben Sie im Feld Name die Zeichenfolge InstallClass.vb ein. Klicken Sie auf Hinzufügen, um dem Projekt die Klasse hinzuzufügen.

So fügen Sie der benutzerdefinierten Aktion Code hinzu

  1. Klicken Sie mit der rechten Maustaste auf InstallClass.vb im Projektmappen-Explorer (oder in die Entwurfsoberfläche), und klicken Sie auf Code anzeigen, um den Code-Editor zu öffnen. Fügen Sie oben im Modul, unterhalb von Imports System.Configuration.Install, den folgenden Code ein:

    Imports System.Runtime.InteropServices
    Imports System.Text
    
  2. Fügen Sie in InstallClass.vb die folgende Deklaration unterhalb von Public Class InstallClass hinzu:

    Private Declare Function GetCORSystemDirectory Lib "mscoree.dll" _
      (<Runtime.InteropServices.MarshalAs( _
      System.Runtime.InteropServices.UnmanagedType.LPWStr)> _
      ByVal Buffer As System.Text.StringBuilder, _
      ByVal BufferLength As Integer, ByRef Length As Integer) As Integer
    
  3. Fügen Sie in InstallClass.vb nach der End Sub-Anweisung für MyBase.New die folgende Prozedur hinzu, um die Install-Prozedur der Basisklasse zu überschreiben:

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
    Public Overrides Sub Install(ByVal savedState As _
      System.Collections.IDictionary)
    
       MyBase.Install(savedState)
       Dim Args As String = Me.Context.Parameters.Item("Args")
    
       If Args = "" Then
          Throw New InstallException("No arguments specified")
       End If
    
       ' Gets the path to the Framework directory.
       Dim Path As New System.Text.StringBuilder(1024)
       Dim Size As Integer
       GetCORSystemDirectory(Path, Path.Capacity, Size)
    
       Dim P As Process
       ' Quotes the arguments, in case they have a space in them.
       Dim Si As New ProcessStartInfo(Path.ToString() & "ngen.exe", Chr(34) _
         & Args & Chr(34))
       Si.WindowStyle = ProcessWindowStyle.Hidden
       Try
          P = Process.Start(Si)
          P.WaitForExit()
       Catch e As Exception
          Throw New InstallException(e.Message)
       End Try
    End Sub
    

So fügen Sie ein Bereitstellungsprojekt hinzu

  1. Wählen Sie im Menü Datei die Option Hinzufügen, und klicken Sie auf Neues Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt hinzufügen aus dem Bereich Projekttyp den Eintrag Setup- und Bereitstellungsprojekte. Wählen Sie anschließend aus dem Bereich Vorlagen den Eintrag Setup-Projekt. Geben Sie im Feld Name die Zeichenfolge InstallClass Installer ein.

  3. Wählen Sie im Eigenschaftenfenster die ProductName-Eigenschaft aus, und geben Sie InstallClass ein.

  4. Wählen Sie im Dateisystem-Editor den Anwendungsordner aus. Klicken Sie im Menü Aktion auf Hinzufügen und dann auf Projektausgabe.

  5. Wählen Sie im Dialogfeld Projektausgabegruppe hinzufügen die primäre Ausgabe für das InstallClass-Projekt, und klicken Sie auf OK, um das Dialogfeld zu schließen.

So fügen Sie die benutzerdefinierte Aktion hinzu

  1. Wählen Sie im Projektmappen-Explorer das InstallClass Installer-Projekt aus. Zeigen Sie im Menü Ansicht auf Editor, und klicken Sie auf Benutzerdefinierte Aktionen.

  2. Wählen Sie im Editor für benutzerdefinierte Aktionen den Knoten Benutzerdefinierte Aktion. Klicken Sie im Menü Aktion auf Benutzerdefinierte Aktion hinzufügen.

  3. Doppelklicken Sie im Dialogfeld Element im Projekt auswählen auf den Anwendungsordner und wählen Sie Primäre Ausgabe von InstallClass (Aktiv) aus. Klicken Sie auf OK, um die benutzerdefinierte Aktion InstallClass allen vier Knoten für benutzerdefinierte Aktionen hinzuzufügen.

  4. Wählen Sie den Knoten Primäre Ausgabe aus InstallClass (Active) unterhalb des Knotens Installieren aus.

  5. Wählen Sie im Eigenschaftenfenster die CustomActionData-Eigenschaft aus, und geben Sie /Args="[TARGETDIR]InstallClass.dll" ein. Schließen Sie die Anführungszeichen ein.

  6. Wiederholen Sie diesen Vorgang für jede der anderen drei Instanzen von Primäre Ausgabe von InstallClass (Aktiv).

  7. Wählen Sie im Menü Erstellen die Option InstallClass Installer erstellen.

So installieren Sie auf dem Entwicklungscomputer

  • Wählen Sie im Projektmappen-Explorer das InstallClass Installer-Projekt aus. Klicken Sie im Menü Projekt auf Installieren.

    Hinweis:

    Zum Ausführen des Installationsprogramms benötigen Sie entsprechende Installationsberechtigungen für den Computer.

So geben Sie an einen anderen Computer weiter

  1. Navigieren Sie in Windows Explorer zu dem Projektverzeichnis, und suchen Sie das erstellte Installationsprogramm. Der Standardpfad lautet \Dokumente und Einstellungen\Ihr Anmeldename\Eigene Dateien\Visual Studio 2005\Projects\Name des Projektmappenordners\My Notepad Installer\Projektkonfiguration\My Notepad Installer.msi. Die standardmäßige Projektkonfiguration lautet entweder Debug oder Release.

  2. Kopieren Sie InstallClass Installer.msi, Setup.exe und alle anderen Dateien und Unterverzeichnisse im Verzeichnis auf einen anderen Computer.

    Hinweis:

    Wenn Sie die Installation auf einem Computer durchführen möchten, der nicht mit einem Netzwerk verbunden ist, kopieren Sie die Dateien auf ein Medium, beispielsweise eine CD-ROM.

  3. Doppelklicken Sie auf dem Zielcomputer auf die Datei Setup.exe, um das Installationsprogramm auszuführen.

    Hinweis:

    Zum Ausführen des Installationsprogramms benötigen Sie entsprechende Installationsberechtigungen für den Computer.

So testen Sie die Installation

  • Navigieren Sie zum Assemblyordner %windir%\assembly (z. B. C:\Windows\assembly), und suchen Sie nach InstallClass. Der Dateityp sollte in der Spalte Typ mit Systemeigene Bilder angegeben sein.

So deinstallieren Sie die Anwendung

  1. Doppelklicken Sie in der Windows-Systemsteuerung auf das Symbol Software.

  2. Wählen Sie im Dialogfeld Software die Option InstallClass Installer aus, und klicken Sie auf Entfernen. Klicken Sie anschließend auf OK, um das Dialogfeld zu schließen.

    Tipp:

    Für die Deinstallation auf dem Entwicklungscomputer klicken Sie im Menü Projekt auf Deinstallieren.

Siehe auch

Konzepte

Kompilieren von MSIL in systemeigenen Code

Referenz

CustomActionData-Eigenschaft

Native Image Generator (Ngen.exe)

Weitere Ressourcen

Verwalten von benutzerdefinierten Aktionen bei der Bereitstellung