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
Para em aberto o Gerenciador de Macro, sobre o Ferramentas menu, point to Macrose, em seguida, clicar Gerenciador de Macro.
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.
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).
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
fechar as macros IDE.O foco voltará para Visual Studio.
Para publicar um projeto para um local específico
Para criar um projeto de Visual Basic Windows aplicativo o Arquivo , aponte para Novoe, em seguida, clicar Projeto.
No Novo projeto caixa de diálogo de de seleçãoaplicativos do Windows from the Visual Basic nó.Nomeie o projeto PublishLocales.
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.
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.)
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
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.
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