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í
Chcete-li spustit Průzkumníka maker v nabídce Nástroje vyberte Makra a potom klikněte na Průzkumník maker.
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.
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).
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
Zavřete Macros IDE. Fokus se vrátí k Visual Studiu.
Chcete-li publikovat projekt pro specifické národní prostředí
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.
V dialogovém okně Nový projekt vyberte Aplikace Windows z uzlu Visual Basic. Nazvěte projekt PublishLocales.
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í.
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.)
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
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.
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
Koncepty
Publikování aplikace ClickOnce