Freigeben über


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

  1. Öffnen Sie den Makro-Explorer. Klicken Sie im Menü Extras auf Makros und dann auf Makro-Explorer.

  2. 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.

  3. Ö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).

  4. 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
    
  5. Schließen Sie die Makro-IDE. Dadurch erhält Visual Studio wieder den Fokus.

So veröffentlichen Sie alle Projekte in einer Projektmappe

  1. Erstellen Sie in Visual Basic ein Windows-Anwendungsprojekt. Klicken Sie im Menü Datei auf Neues Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt die Option Windows-Anwendung aus dem Knoten Visual Basic aus. Nennen Sie das Projekt MultiProj.

  3. Fügen Sie der Projektmappe MultiProj zwei weitere Windows-Anwendungsprojekte hinzu. Nennen Sie sie Proj1 und Proj2.

  4. 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.

  5. 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

  6. 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.

  7. 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

Fenster "Makro-Explorer"

Konzepte

Veröffentlichen von ClickOnce-Anwendungen

Weitere Ressourcen

Entwicklungsumgebung für Makros