Gewusst wie: Veröffentlichen von mehreren Projekten in einer Projektmappe
Eine Projektmappe kann mehrere Projekte enthalten, mit der ClickOnce-Bereitstellung kann jedoch immer nur ein Projekt gleichzeitig veröffentlicht werden. Bei Projektmappen mit vielen Projekten kann die einzelne Veröffentlichung daher sehr langwierig sein. In dieser Vorgehensweise wird beschrieben, wie Sie den Prozess mit einem Makro automatisieren können, um alle Projekte in einer Projektmappe auf einmal zu veröffentlichen.
So erstellen Sie das Veröffentlichungsmakro
Öffnen Sie den Makro-Explorer. Klicken Sie im Menü Extras auf Makros und dann auf Makro-Explorer.
Erstellen Sie ein neues Makromodul. Wählen Sie im Makro-Explorer den Knoten MyMacros aus. Klicken Sie im Menü Extras auf Makros und dann auf Neues Makromodul. Nennen Sie das Modul PublishAllProjects.
Öffnen Sie im Makro-Explorer den Knoten MyMacros, und öffnen Sie dann das Modul PublishAllProjects, indem Sie darauf doppelklicken (oder klicken Sie im Menü Extras auf Makros und dann auf Makro-IDE).
Fügen Sie dem Modul in der Makro-IDE den folgenden Code nach den Import-Anweisungen hinzu:
Public Module PublishAllProjects Sub PublishAllProjectsInSolution() ' Before using this macro, the certficate and security zone must be set. ' You can do this by publishing the projects using the VS IDE. Dim slnbld2 As SolutionBuild2 = CType(DTE.Solution.SolutionBuild, SolutionBuild2) 'Save changes to all projects and clean. For Each proj As Project In DTE.Solution.Projects proj.Save() Next slnbld2.Clean(True) For Each proj As Project In DTE.Solution.Projects 'Verify project is a windows application or console application before continuing Dim outputType As Integer = proj.Properties.Item("OutputType").Value If outputType <> 0 AndAlso outputType <> 1 Then Continue For End If 'GenerateManifests and SignManifests must always to true for publishing to work. proj.Properties.Item("GenerateManifests").Value = True proj.Properties.Item("SignManifests").Value = True proj.Save() slnbld2.BuildProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True) 'only publish if build was successful. If slnbld2.LastBuildInfo <> 0 Then MsgBox("Build failed for " & proj.UniqueName) Else slnbld2.PublishProject(proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, proj.UniqueName, True) If slnbld2.LastPublishInfo = 0 Then MsgBox("Publish succeeded for " & proj.UniqueName) Else MsgBox("Publish failed for " & proj.UniqueName) End If End If Next End Sub End Module
Schließen Sie die Makro-IDE. Dadurch erhält Visual Studio wieder den Fokus.
So veröffentlichen Sie alle Projekte in einer Projektmappe
Erstellen Sie in Visual Basic ein Windows-Anwendungsprojekt. Klicken Sie im Menü Datei auf Neues Projekt.
Wählen Sie im Dialogfeld Neues Projekt die Option Windows-Anwendung aus dem Knoten Visual Basic aus. Nennen Sie das Projekt MultiProj.
Fügen Sie der Projektmappe MultiProj zwei weitere Windows-Anwendungsprojekte hinzu. Nennen Sie sie Proj1 und Proj2.
Veröffentlichen Sie beide Projekte zunächst in der Projektmappe. Das Makro erfordert, dass die ClickOnce-Manifeste signiert sind und die Sicherheitszone für beide Projekte festgelegt wurde. Um diese Anforderungen zu erfüllen, müssen Sie die Projekte mithilfe der integrierten Entwicklungsumgebung (IDE) veröffentlichen, bevor Sie das Makro ausführen.
Wählen Sie das Projekt MultiProj im Projektmappen-Explorer aus. Wählen Sie im Menü Projekt die Option Eigenschaften aus. Klicken Sie im Projekt-Designer auf die Registerkarte Veröffentlichen. Geben Sie auf der Seite Veröffentlichen den Veröffentlichungsort publish\ an, und klicken Sie dann auf Jetzt veröffentlichen.
Wiederholen Sie diese Vorgehensweise für die anderen Projekte in der Projektmappe.
Veröffentlichen Sie MultiProj erneut, indem Sie das Makro im Visual Studio-Befehlsfenster aufrufen. Um das Befehlsfenster aufzurufen, klicken Sie im Menü Ansicht auf Weitere Fenster und dann auf Befehlsfenster. Alternativ können Sie auch STRG + ALT + A drücken. Geben Sie im Befehlsfenster macros ein. Mittels automatischer Vervollständigung wird eine Liste verfügbarer Makros angezeigt. Wählen Sie das folgende Makro aus, und drücken Sie die EINGABETASTE:
Macros.MyMacros.PublishAllProjects.PublishAllProjectsInSolution
Wenn die Veröffentlichung der beiden Projekte erfolgreich war, wird die folgende Meldung angezeigt: "Veröffentlichung von MultiProj\MultiProj.vbproj erfolgreich". Klicken Sie in jedem Meldungsfeld auf OK.
Navigieren Sie zu den Unterverzeichnissen von publish in jedem Projektverzeichnis. Darin sollten nun die Manifeste, setup.exe und die veröffentlichten Webseitendateien angezeigt werden.
Siehe auch
Aufgaben
Gewusst wie: Bearbeiten und programmgesteuertes Erstellen von Makros
Gewusst wie: Veröffentlichen eines Projekts mit einem bestimmten Gebietsschema
Referenz
Konzepte
Veröffentlichen von ClickOnce-Anwendungen