Artikel-ID: 555184 - Geändert am: Dienstag, 24. August 2004 - Version: 1.0

BUG: Visual Studio .NET Projekte führen benutzerdefinierte Aktion der früheren Version aus, wenn Visual Studio .NET Projekte aktualisieren

Autor: Carlos Quintero MVP
SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Alles erweitern | Alles schließen

Zusammenfassung

Wenn Sie eine neue Version installieren installieren Sie von einer Anwendung Setup-Programm von einer Anwendung ein Benutzerdefiniert von einschließt, Aktion, das Installationsdoesnæt führt die benutzerdefinierte Installationsaktion der neuen Version aber diesen der früheren Version, die ersetzt wird, aus.

Problembeschreibung

Wenn das Setup-Programm einschließt und wenn Sie ein Setup ausführen, das von einem .NET Setup Project Visual Studio erstellt wird, um eine Anwendung zu aktualisieren, installiert ein Benutzerdefiniert Aktion, das Installationsdoesnæt führt die benutzerdefinierte Installationsaktion der neuen Version aber diesen der früheren Version, die ersetzt wird, aus.

Ursache

Das ist ein Fehler von Visual Studio .NET.

Weitere Informationen

Schritte zu Reproduzieren des Problems:
 
- Erstellen Sie ein neues Visual Studio .NET 2003 Class Library Projekt mit Hilfe des VB.NET und bezeichnen Sie es als ClassLibrary1.
 
- Fügen Sie Verweise auf system.windows.forms.dll- und System.Configuration.Install.dll-Assembly hinzu.
 
- Ändert Sie in der Datei AssemblyInfo.vb < Assembly: AssemblyVersion("1.0.*") > zu < Assembly: AssemblyVersion("1.0.0.0") >
 
- In der Datei AssemblyInfo.vb fügt Sie hinzu < Assembly: AssemblyFileVersion("1.0.0.0") >
 
- Ändern Sie die Klasse Class1 der Klassenbibliothek, um dem zu ähneln:
 
_ <System.ComponentModel.RunInstaller(True)>
Public Class-Class1
    Erbt System.Configuration.Install.Installer
 
    Öffentliches Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        System.Windows.Forms.MessageBox.Show (" Installation von 1.0 ")
    End Sub
 
    Öffentliches Overrides Sub Uninstall(ByVal savedState As System.Collections.IDictionary)
        System.Windows.Forms.MessageBox.Show("Uninstall from 1.0")
    End Sub
 
End Class
 
Fügen Sie zu der Projektmappe, die als Setup1 bezeichnet wird, Setup-Projekt hinzu.
 
- Klicken Sie mit der rechten Maustaste auf den Lösungsknoten in dem Projekt-Mappe-Explorer, wählen Sie Konfigurations-Manager aus, und markieren Sie das Kontrolle-Kästchen Erstellen des Setup-Projekts.
 
- Klicken Sie mit der rechten Maustaste auf den Lösungsknoten in dem Projekt-Mappe-Explorer, wählen Sie Projektabhängigkeit aus, und wählen Sie aus, dass Setup1-Projekt von ClassLibrary1-Projekt abhängt.
 
- Wählen Sie das Setup-Projekt in dem Projekt-Mappe-Explorer aus, und ändern Sie in dem Eigenschaftsfenster RemovePreviousVersions in dem True.
 
- Klicken Sie auf das Setup-Projekt in dem Projekt-Mappe-Explorer mit der rechten Maustaste, wählen Sie Eigenschaften aus, und ändern Sie Bootstrapper von "Windows Installer Bootstrapper" auf "Keinem".
 
- Wählen Sie in dem Dateisystemeditor des Setup-Projekts Anwendungsordner aus, klicken Sie auf Hinzufügen von Projektausgabe mit der rechten Maustaste, und wählen Sie das Primary Output of ClassLibrary1 aus.
 
- Auf Installationsknoten klickt Sie in dem Editor des Setup-Projekts für benutzerdefinierte Aktionen mit der rechten Maustaste Sie wählen Benutzerdefinierte Aktion hinzufügen aus, geben Sie in Anwendungsordner ein, und Sie auswählen " Optionen Primäre Ausgabe von ClassLibrary1 (aktiv) ".
 
- Auf Knoten Uninstall klickt Sie in dem Editor des Setup-Projekts für benutzerdefinierte Aktionen mit der rechten Maustaste Sie wählen Benutzerdefinierte Aktion hinzufügen aus, geben Sie in Anwendungsordner ein, und Sie auswählen " Optionen Primäre Ausgabe von ClassLibrary1 (aktiv) ".
 
- Speichern Sie alle Änderungen, und Erstellen Sie die Projektmappe.
 
Führen Sie das Setup1.msi-Installer, das erstellt worden ist, aus, das "Just Me" auswählt. Die Meldung zeigen Sie zu bestimmtem Zeitpunkt an "ob Sie von der benutzerdefinierten Installationsaktion 1.0 Installieren".
 
- Ändert Sie jetzt in der Datei AssemblyInfo.vb < Assembly: AssemblyFileVersion("1.0.0.0") > zu < Assembly: AssemblyFileVersion("2.0.0.0") >.
 
- In Class1 ändern die Nachrichten auf "Installieren von 2.0" Sie und "Deinstallieren von 2.0"
 
- Wählen Sie das Setup-Projekt in dem Projekt-Mappe-Explorer aus, und ändern Sie in dem Eigenschaftsfenster Version in dem 2.0.0. Sie werden aufgefordert, den Produktcode und den Paketcode zu ändern. Klicken Sie auf Ja um das Übernehmen der Änderungen.
 
- Speichern Sie alle Änderungen, und Erstellen Sie die Projektmappe erneut.
 
Führen Sie das Setup1.msi-Installer, die "Just Me" erneut auswählt und denselben Zielordner verwendet, aus, das erstellt worden ist. Zu bestimmtem Zeitpunkt zeigen Sie "von 1.0 von der benutzerdefinierten De-Aktion der ersten Version, die korrekt ist, Deinstalliert" die Meldung an. Eine Meldung "Installation von 1.0" wird später statt "von "Installieren" erwartet Installieren von 2.0" angezeigt.
 
 

 

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Professional Edition
Keywords: 
kbpubmvp kbpubtypecca kbhowto KB555184 KbMtde kbmt
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 555184  (http://support.microsoft.com/kb/555184/en-us/ )
Community Solutions ContentCOMMUNITY SOLUTIONS ? VERZICHTERKLÄRUNG
MICROSOFT CORPORATION BZW: SEINE LIEFERANTEN LEHNEN JEGLICHE VERANTWORTUNG FÜR DIE EIGNUNG, VERLÄSSLICHKEIT UND RICHTIGKEIT DES ENTHALTENEN INHALTS UND DER ENTHALTENEN GRAFIKEN AB. ALLE INFORMATIONEN WERDEN WIE BESEHEN OHNE JEDE GEWÄHRLEISTUNG BEREITGESTELLT. MICROSOFT UND SEINE LIEFERANTEN SIND NICHT VERANTWORTLICH UND ÜBERNEHMEN KEINE VERANTWORTUNG FÜR DIE BESCHAFFENHEIT DER ENTHALTENEN INFORMATIONEN UND GRAFIKEN EINSCHLIESSLICH JEDER KONKLUDENTEN BESCHAFFENHEIT, GARANTIE DER HANDELSÜBLICHKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK; FACHMÄNNISCHER BEMÜHUNGEN; DES EIGENTUMSVORBEHALTS ODER DER NICHTVERLETZUNG VON RECHTEN DRITTER. Die folgenden Regeln gelten für Schadensersatzforderungen und die Entschädigung für vergebliche Ausgaben, unabhängig von der Rechtsgrundlage einschließlich Schadensersatzrecht: Microsoft Corporation ist nur haftbar für absichtliche Handlungen, grobe Fahrlässigkeit, Tod oder Körperverletzung sowie für Ansprüche auf der Grundlage des Produkthaftpflichtrechts. Microsoft Corporation ist auch haftbar für leichte Fahrlässigkeit, falls die Microsoft Corporation materiellen Vertragspflichten nicht nachkommt. In solchen Fällen beschränkt sich die Haftbarkeit der Microsoft Corporation auf allgemein übliche und vorhersehbare Schadensersatzansprüche. In allen übrigen Fällen, einschließlich dem geltenden Schadensersatzrecht, ist die Microsoft Corporation nicht haftbar für leichte Fahrlässigkeit. Dies trifft ebenfalls auf die Lieferanten der Microsoft Corporation zu.