Sdílet prostřednictvím


Postupy: Publikování projektu, který má specifické národní prostředí

Pro aplikace není neobvyklé, že obsahují součásti jiného národního prostředí. V tomto scénáři byste chtěli vytvořit řešení, které má několik projektů a pak publikovat samostatné projekty pro každé národní prostředí. Tato procedura ukazuje, jak použít makro pro publikování prvního projektu v řešení pomocí národního prostředí "en". Chcete-li vyzkoušet tuto proceduru s jiným národním prostředím než "en", nezapomeňte nastavit localeString v makru na odpovídající národní prostředí, které používáte (například "de" nebo "de-DE").

Poznámka

Použijete-li toto makro, umístění publikování by mělo být platnou adresou URL nebo cesta sdílení UNC. Navíc Internetová informační služba (IIS) musí být instalována na počítači. Pro instalaci IIS klikněte v nabídce Start na položku Ovládací panely. Poklepejte na panel Přidat nebo odebrat programy. V Ovládacích panelech klikněte na panel Přidat nebo odebrat programy. V Průvodci součástmi systému Windows zaškrtněte zaškrtávací políčko Internetová informační služba (IIS) v seznamu Součásti. Pak kliknutím na tlačítko Dokončit zavřete průvodce.

Chcete-li vytvořit makro pro publikování

  1. Chcete-li spustit Průzkumníka maker v nabídce Nástroje vyberte Makra a potom klikněte na Průzkumník maker.

  2. Vytvořte nový modul makra. V Průzkumníku maker zvolte Moje Makra. V nabídce Nástroje přejděte na položku Makra a klikněte na příkaz Záznam nového makra. Nazvěte modul PublishSpecificCulture.

  3. V Průzkumníku maker rozbalte uzel Moje Makra a pak otevřete modul Publikovat všechny projekty poklikáním (nebo z nabídky Nástroje přejděte na Makra a potom klikněte na tlačítko Makros IDE).

  4. V Macros IDE přidejte následující kód do modulu po příkazech Import:

    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. Zavřete Macros IDE. Fokus se vrátí k Visual Studiu.

Chcete-li publikovat projekt pro specifické národní prostředí

  1. Chcete-li vytvořit projekt aplikace ve Visual Basic systému Windows, vyberte v nabídce Soubor položku Nový a potom klikněte na tlačítko Projekt.

  2. V dialogovém okně Nový projekt vyberte Aplikace Windows z uzlu Visual Basic. Nazvěte projekt PublishLocales.

  3. Klikněte na Form1. V okně Vlastnosti pod Designem změňte vlastnost Jazyk z (Výchozí) na Angličtina. Změnit vlastnost Text formuláře na MyForm.

    Všimněte si, že lokalizovaná knihovna DLL se nevytvoří, dokud není potřeba. Jsou například vytvořeny při změně textu formuláře nebo některého z jeho ovládacích prvků po určení nového národního prostředí.

  4. Publikování PublishLocales pomocí Visual Studio IDE.

    V Průzkumníku řešení zvolte PublishLocales. V nabídce Vlastnosti vyberte Projekt. V Návrháři projektu na stránce Publikovat upřesněte umístění publikování na https://localhost/PublishLocales a klikněte na Publikovat nyní.

    Jakmile se zobrazí webová stránka publikování, zavřete jí. (Pro tento krok, potřebujete publikovat projekt; není nutné jej instalovat.)

  5. Znovu publikujte PublishLocales vyvoláním makra v okně příkazového řádku ve Visual Studiu. Chcete-li zobrazit okno Příkazového řádku vyberte v nabídce Zobrazení položku Ostatní okna a potom klikněte na tlačítko Příkazové okno nebo stiskněte kombinaci kláves CTRL + ALT + A. V okně Příkazového řádku zadejte makra; automatické dokončení nabídne seznam maker k dispozici. Zvolte následující makro a stiskněte klávesu ENTER:

    Macros.MyMacros.PublishSpecificCulture.PublishProjectFirstProjectWithEnLocale

  6. Při úspěšném procesu publikování se vygeneruje zpráva, že publikování "PublishLocales\PublishLocales.vbproj" proběhlo úspěšně. Jazyk publikování byl "en". " V okně se zprávou klepněte na tlačítko OK. Když se zobrazí webová stránka publikování, klikněte na tlačítko Instalovat.

  7. Vyhledejte v C:\Inetpub\wwwroot\PublishLocales\en. Měly by se zobrazit nainstalované soubory, například manifesty, setup.exe, soubor webové stránky publikování a lokalizovaná knihovna DLL jazykových prostředků. (Podle výchozího nastavení ClickOnce přidá příponu .deploy za soubory .exe a .dll; tuto příponu je možné odebrat po nasazení.)

Viz také

Úkoly

How to: Edit and Programmatically Create Macros

Postupy: Publikování více projektů v řešení

Odkaz

Macro Explorer Window

Koncepty

Publikování aplikace ClickOnce

Další zdroje

Macros Development Environment