2009-05-17 5 views
2

Ich versuche, ein sehr einfaches "Setup and Deployment" -Projekt mit Visual Studio zu erstellen. Was ich möchte ist die Fähigkeit zu wählen, welche Komponenten zu installieren. Angenommen, jede Komponente besteht aus der primären Ausgabe einer einzelnen Klassenbibliothek (d. H. Jede Komponente ist tatsächlich ein einzelnes Modul oder eine kompilierte Assembly).Wie fügen Sie Visual Studio-Setup- und Bereitstellungsprojekte optionale Komponenten hinzu?

Ich habe keine solche Option in der Standardmenge von verfügbaren Dialogen gesehen. Aber ich habe gesehen, dass wir mit etwas Aufwand custom dialogs erstellen können.

  • Wie kann ich erkennen, programmatisch, welche Komponente als Teil der Einrichtung und Bereitstellung Projekt zur Verfügung stehen? (das heißt ich würde das Projekt gerne auch arbeiten, wenn das Hinzufügen oder eine Komponente aus der Installation zu entfernen)

  • Wie kann ich verlängern oder einen benutzerdefinierten Dialog erstellen, die die Liste der verfügbaren Komponenten zeigen?

  • Wie kann ich erkennen, welche Komponenten der Endbenutzer zur Installation ausgewählt hat?

ich ein wenig vertraut bin mit Orca, das Werkzeug .msi zu manipulieren Dateien sowie vollständige geblasenen Installer-Anwendungen wie Installshield, aber ich mag diese nur mit rohem Visual Studio und anderen verfügbar Open machen Quellwerkzeuge.

Danke für Ihre Hilfe.

Antwort

1

VDP (Visual Studio Deployment Project) ist für diese Art von Sachen nicht ausgeschnitten (sprich: verwenden Wix statt):

  1. (Ich vermute, Sie dies zur Laufzeit wollen) Sie MsiQueryComponentState verwenden können, aber Dafür müssen Sie die Komponente GUID übergeben, die Sie in VDP nicht kontrollieren können.
  2. Dies kommt aus der Box mit allem anderen als VDP.
  3. (Ich nehme an, Sie wollen dies zum Zeitpunkt der Einrichtung ...) Sie können Bedingung verwenden, um benutzerdefinierte Aktion basierend auf Component Install State auszuführen, in VDP haben Sie keine Kontrolle über die Komponente ID (nicht mit der Komponenten-Guid verwechselt werden), die benötigt wird, um den Komponentenzustand vorzugeben.
+0

Nun ja, ich war irgendwie diese Antwort erwartet. Kein Problem, trotzdem zu fragen ... Danke. –

Verwandte Themen