Share via


Como: Publicar um projeto com um local específico

Não é incomum para um aplicativo que contém componentes que tenham diferentes localidades.Nesse cenário, você faria criar uma solução que tem vários projetos e, em seguida, publique projetos separados para cada localidade.Este procedimento mostra como usar uma macro para publicar o projeto primeiro em uma solução usando a localidade 'en'.Se você quiser tentar esse procedimento com uma localidade diferente de 'en', certifique-se de conjunto localeString na macro para coincidir com a localidade que você está usando (por exemplo, 'de' ou 'de-DE').

Observação:

Quando você usar essa macro, o local de publicar deve ser uma URL válida ou Universal () convenção de nomeação UNC ) Compartilhe.Também () Serviços de Informações da Internet IIS ) tem de ser instalado em seu computador.Para instalar o IIS, nas Iniciar menu, clicar Painel de controle.clicar duas vezes em Adicionar ou remover programas.In Adicionar ou remover programas, clicar Adicionar ou remover componentes do Windows.No Assistente de componentes do Windows, selecionar o Serviços de Informações da Internet (Serviços de Informações da Internet) caixa de seleção a Componentes lista.Em seguida, clicar Concluir para fechar o assistente.

Para criar a macro de publicação

  1. Para em aberto o Gerenciador de Macro, sobre o Ferramentas menu, point to Macrose, em seguida, clicar Gerenciador de Macro.

  2. Crie um novo módulo de macro.No Gerenciador de Macro, selecionar MyMacros.Sobre o Ferramentas menu, point to Macrose, em seguida, clicar Novo módulo de macro.nome PublishSpecificCulture o módulo.

  3. No Gerenciador de macro, expandir o MyMacros nó e abra o PublishAllProjects módulo clicando duas vezes nele (ou, da Ferramentas menu, point to Macrose, em seguida, clicar IDE de macros).

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

    Module PublishSpecificCulture
        Sub PublishProjectFirstProjectWithEnLocale()
            ' Note: You should publish projects by using the IDE at least once
            ' before you use this macro. Items such as the certficate and the 
            ' security zone must be set.
            Dim localeString As String = "en"
    
            ' Get first project.
            Dim proj As Project = DTE.Solution.Projects.Item(1)
            Dim publishProperties As Object = proj.Properties.Item("Publish").Value
    
            ' GenerateManifests and SignManifests must always be set to
            ' True for publishing to work. 
            proj.Properties.Item("GenerateManifests").Value = True
            proj.Properties.Item("SignManifests").Value = True
    
            'Set the publish language.
            'This will set the deployment language and pick up all 
            ' en resource dlls:
            Dim originalTargetCulture As String = _
                publishProperties.Item("TargetCulture").Value
            publishProperties.Item("TargetCulture").Value = localeString
    
            'Append 'en' to end of publish, install, and update URLs if needed:
            Dim originalPublishUrl As String = _
                publishProperties.Item("PublishUrl").Value
            Dim originalInstallUrl As String = _
                publishProperties.Item("InstallUrl").Value
            Dim originalUpdateUrl As String = _
                publishProperties.Item("UpdateUrl").Value
            publishProperties.Item("PublishUrl").Value = _
                AppendStringToUrl(localeString, New Uri(originalPublishUrl))
            If originalInstallUrl <> String.Empty Then
                publishProperties.Item("InstallUrl").Value = _
                    AppendStringToUrl(localeString, New Uri(originalInstallUrl))
            End If
            If originalUpdateUrl <> String.Empty Then
                publishProperties.Item("UpdateUrl").Value = _
                    AppendStringToUrl(localeString, New Uri(originalUpdateUrl))
            End If
            proj.Save()
    
            Dim slnbld2 As SolutionBuild2 = _
                CType(DTE.Solution.SolutionBuild, SolutionBuild2)
            slnbld2.Clean(True)
    
            slnbld2.BuildProject( _
            proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, _
            proj.UniqueName, True)
    
            ' Only publish if build is 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 _
                    & vbCrLf & "." _
                    & " Publish Language was '" & localeString & "'.")
                Else
                    MsgBox("Publish failed for " & proj.UniqueName)
                End If
            End If
    
            ' Return URLs and target culture to their previous state.
            publishProperties.Item("PublishUrl").Value = originalPublishUrl
            publishProperties.Item("InstallUrl").Value = originalInstallUrl
            publishProperties.Item("UpdateUrl").Value = originalUpdateUrl
            publishProperties.Item("TargetCulture").Value = originalTargetCulture
            proj.Save()
        End Sub
    
        Private Function AppendStringToUrl(ByVal str As String, _
        ByVal baseUri As Uri) As String
            Dim returnValue As String = baseUri.OriginalString
            If baseUri.IsFile OrElse baseUri.IsUnc Then
                returnValue = IO.Path.Combine(baseUri.OriginalString, str)
            Else
                If Not baseUri.ToString.EndsWith("/") Then
                    returnValue = baseUri.OriginalString & "/" & str
                Else
                    returnValue = baseUri.OriginalString & str
                End If
            End If
            Return returnValue
        End Function
    End Module
    
  5. fechar as macros IDE.O foco voltará para Visual Studio.

Para publicar um projeto para um local específico

  1. Para criar um projeto de Visual Basic Windows aplicativo o Arquivo , aponte para Novoe, em seguida, clicar Projeto.

  2. No Novo projeto caixa de diálogo de de seleçãoaplicativos do Windows from the Visual Basic nó.Nomeie o projeto PublishLocales.

  3. clicar Form1.No Propriedades janela, em Design, alterar the linguagem propriedade de (Padrão) to Inglês.Alterar o Texto propriedade do formulário MyForm.

    Observe que o recurso localizado DLLs não são criadas até que eles sejam necessários.Por exemplo, eles são criados quando você altera o texto do formulário ou um de seus controles após você ter especificado a localidade do nova.

  4. Publicar PublishLocales usando o Visual Studio IDE.

    In O gerenciador de soluções, selecionar PublishLocales.Sobre o Projeto menu, selecionar Propriedades.No projeto Designer, sobre o Publicar página, especifique um local de publicação do https://localhost/PublishLocales e, em seguida, clicar Publicar agora.

    Quando a página da Web de publicar é exibida, fechar-o.(Essa etapa, você só tem que publicar o projeto; não é necessário instalá-lo.)

  5. Publicar PublishLocales novamente ao chamar a macro no Visual Studio janela do aviso de comando.Para exibir o janela do aviso de comando, sobre o Modo de exibição , aponte para Outras janelas e, em seguida, clicar janela Comando ou pressione CTRL + ALT + A.Na janela aviso de comando, digite macros; autopreencher fornecem uma lista de macros disponível.selecionar a macro a seguir e pressione ENTER:

    Macros.MyMacros.PublishSpecificCulture.PublishProjectFirstProjectWithEnLocale

  6. Quando o processo de publicação for bem-sucedida, ele irá gerar uma mensagem que diz "Publicar bem-sucedida para PublishLocales\PublishLocales.vbproj.Publicar linguagem era 'en'. " clicar OK na caixa de mensagem.Quando for exibida a página da Web de publicar, clicar Instalar.

  7. Examine C:\Inetpub\wwwroot\PublishLocales\en.Você deve ver sistema autônomo arquivos instalados, sistema autônomo sistema autônomo manifestos, setup.exe e o arquivo de paginação da Web de publicar, bem sistema autônomo a DLL de recurso localizado.(Por padrão o ClickOnce anexará uma extensão .implantar em EXEs e DLLs, você pode remover esta extensão após a implantar.)

Consulte também

Tarefas

Como: Editar e criar macros por programação

Como: Publicar os diversos projetos em uma solução

Referência

Macro Explorer janela

Outros recursos

Publicando aplicativos ClickOnce

Ambiente de desenvolvimento de macros