Partilhar via


How to: Publicar vários projetos em uma solução

Uma solução pode conter vários projetos, mas a implantação de ClickOnce é restrito no que ele pode publicar somente um projeto ao mesmo tempo. Para soluções com vários projetos, publicando-os um por um pode ser uma tarefa árdua. Este procedimento mostra como automatizar o processo usando uma macro para publicar todos os projetos em uma solução.

Para criar a macro de publicação

  1. Abra o Gerenciador de Macro. Do Ferramentas menu, clique em Macros, em seguida, Macro Explorer.

  2. Crie um novo módulo de macro. No Gerenciador de Macro, selecione o MyMacros nó. Do Ferramentas menu, clique em Macros, em seguida, Novo módulo de Macro. Nomeie o módulo PublishAllProjects.

  3. No Macro Explorer, abra o MyMacros nó, abra o PublishAllProjects módulo clicando duas vezes nele (ou o Ferramentas menu, clique em Macros, em seguida, Macros ide).

  4. No IDE de Macros, adicione o seguinte código no módulo, após a Import instruções:

    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. Feche as Macros IDE. O foco retorna para Visual Studio.

Para publicar todos os projetos em uma solução

  1. Crie um projeto de aplicativo do Windows Visual Basic. No menu File, clique em New Project.

  2. No Novo projeto caixa de diálogo, selecione Windows Application da Visual Basic nó. Nomeie o projeto MultiProj.

  3. Adicionar dois projetos de aplicativo do Windows mais para o MultiProj solução. Nomeá-los Proj1 e Proj2.

  4. Publica primeiro cada um dos projetos na solução. A macro requer que os manifestos de ClickOnce ser assinado e a zona de segurança seja definida para cada um dos projetos. Publicando cada usando o ambiente de desenvolvimento integrado (IDE) antes de usar a macro, o processo de publicação assinar os manifestos de ClickOnce e defina a zona de segurança, que são necessários para a execução da macro.

    Em Solution Explorer, selecione MultiProj. Do projeto menu, selecione Propriedades. No Project Designer, clique na Publicar guia. No Publicar de página, especifique um local de publicação do publish\, em seguida, clique em Publicar agora.

    Repita esse procedimento para outros projetos na solução.

  5. Publicar MultiProj novamente invocando a macro na janela de comando Visual Studio. Para exibir a janela de comando da Exibir menu, clique em Other Windows, em seguida, A janela de comando, ou pressione ctrl + ALT + A. Na janela de comando, digite macros; auto-completar fornecerá uma lista de macros disponíveis. Selecione a macro de seguir e pressione Enter:

    Macros.MyMacros.PublishAllProjects.PublishAllProjectsInSolution

  6. Quando o processo de publicação para cada projeto for bem-sucedida, você receberá uma mensagem informando que "Publish succeeded para MultiProj\MultiProj.vbproj". Clique em OK em cada caixa de mensagem.

  7. Examine os subdiretórios de publicar em cada diretório do projeto. Você deve ver os manifestos, Setup. exe e publicar os arquivos de página da Web.

Consulte também

Tarefas

Como: Editar e programaticamente criar Macros

How to: Publicar um projeto de um local específico

Referência

Janela do Explorer de macro

Conceitos

Publishing ClickOnce Applications

Outros recursos

Ambiente de desenvolvimento de macros