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
Abra o Gerenciador de Macro. Do Ferramentas menu, clique em Macros, em seguida, Macro Explorer.
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.
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).
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
Feche as Macros IDE. O foco retorna para Visual Studio.
Para publicar todos os projetos em uma solução
Crie um projeto de aplicativo do Windows Visual Basic. No menu File, clique em New Project.
No Novo projeto caixa de diálogo, selecione Windows Application da Visual Basic nó. Nomeie o projeto MultiProj.
Adicionar dois projetos de aplicativo do Windows mais para o MultiProj solução. Nomeá-los Proj1 e Proj2.
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.
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
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.
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
Conceitos
Publishing ClickOnce Applications