乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      在Visual Studio .NET中自動化生成和配置(抄錄)

       ThinkTank_引擎 2014-04-29

      在Visual Studio .NET中自動化生成和配置

          摘要:本文介紹了如何使用 Microsoft? Visual Studio? .NET 自動化模型來自動化解決方案生成和項(xiàng)目生成以及生成配置。

          目錄

        A 解決方案和項(xiàng)目自動化生成模型對象

          B 控制生成配置

       

          B1)解決方案生成配置

       

          B2)項(xiàng)目生成配置

       

          C 啟動解決方案和項(xiàng)目的生成

       

           D 項(xiàng)目生成依賴項(xiàng)

       

           E 定義啟動項(xiàng)目

       

           F 總結(jié)

          簡介

          在 Visual Studio .NET 中生成項(xiàng)目或解決方案時,需要按照與其相關(guān)聯(lián)的生成配置來生成。通常,您可以通過使用集成開發(fā)環(huán)境 (IDE) 來手動生成解決方案或項(xiàng)目;但 Visual Studio .NET 自動化模型中包含的對象使您可以通過編程方式更改生成配置并完成生成操作。

          使用生成模型,您可以選擇要生成的項(xiàng)目并排除那些不需要生成的項(xiàng)目。另外,您還可以使用生成配置來確定生成所選項(xiàng)目的方式。在 Visual Studio 中可以定義兩種類型的生成配置:解決方案和項(xiàng)目。使用 SolutionBuild 對象,您可以通過編程方式來運(yùn)行、調(diào)試和部署解決方案或選定的項(xiàng)目。

          對于創(chuàng)建無人看管的生成、自動化測試套件和批處理作業(yè)而言,通過編程方式控制生成配置以及項(xiàng)目和解決方案的生成這一功能非常有用。另外,您還可以使用生成模型來完成下列工作:

          · 創(chuàng)建、激活和刪除解決方案配置。

          · 生成、運(yùn)行或部署解決方案配置中的任何項(xiàng)目或所有項(xiàng)目。

          · 獲取項(xiàng)目或解決方案配置內(nèi)的對象的信息。

          · 添加、刪除或獲取項(xiàng)目生成依賴項(xiàng)的信息。

          Visual Studio .NET 自動化模型中的解決方案和項(xiàng)目生成對象的大部分成員都能與 Visual Studio .NET IDE 中的命令對應(yīng)起來。例如,SolutionBuild 對象包含的成員等同于 Build(生成)菜單中的命令:Build Solution(生成解決方案)、Rebuild Solution(重新生成解決方案)、Build Project(生成項(xiàng)目)和 Rebuild Project(重新生成項(xiàng)目),等等。

          有關(guān)解決方案和項(xiàng)目生成配置的工作原理,以及如何在 IDE 中進(jìn)行設(shè)置的詳細(xì)信息,請參閱 Visual Studio 產(chǎn)品文檔中的  Builds During Application Development(英文)和 Build Configurations(英文)。

          解決方案和項(xiàng)目自動化生成模型對象

          Visual Studio .NET 自動化生成模型中的某些對象和集合使您可以修改解決方案和項(xiàng)目的生成配置以及依賴項(xiàng),還可以通過編程方式啟動生成,這些對象和集合包括:

         

      對象名稱

      說明

      BuildDependency 對象

      表示生成主項(xiàng)目之前必須生成的項(xiàng)目。

      BuildDependencies 集合

      包含生成主項(xiàng)目之前必須生成的所有項(xiàng)目。

      Configuration 對象

      表示項(xiàng)目配置或生成設(shè)置集。例如,用于 .NET 平臺的 Debug(調(diào)試)項(xiàng)目配置。

      Configurations 集合

      包含所有項(xiàng)目配置對象。

      ConfigurationManager 對象

      表示生成配置和平臺。

      OutputGroup 對象

      包含由項(xiàng)目生成的文件。

      OutputGroups 集合

      包含所有 OutputGroup 對象。

      SolutionBuild 對象

      用于生成、清除和部署當(dāng)前處于活動狀態(tài)的解決方案配置。

      SolutionConfiguration 對象

      表示要生成的項(xiàng)目及其配置的列表。

      SolutionConfigurations 集合

      包含所有已定義的 SolutionConfiguration 對象。

      SolutionContext 對象

      表示 SolutionConfiguration 對象中每個項(xiàng)目的生成上下文。

      SolutionContexts 集合

      包含 SolutionConfiguration 對象中的所有 SolutionContext 對象(每個項(xiàng)目對應(yīng)一個)。

          在 Visual Studio .NET 自動化模型中,對象和集合之間關(guān)系的層次結(jié)構(gòu)如下所示:

          DTE

            SolutionBuild

                  BuildDependencies

                        BuildDependency

            SolutionConfigurations

                  SolutionConfiguration

                        SolutionContexts

                              SolutionContext

            Project

                  ConfigurationManager

                        Configurations

                              Configuration

                                    OutputGroups

                                          OutputGroup

          有關(guān)完整的 Visual Studio .NET 自動化模型的詳圖,請參閱  Visual Studio產(chǎn)品文檔中的 Automation Object Model Chart(英文)。

          有關(guān)可用配置和項(xiàng)目上下文的信息,請參閱  Configuration, Configuration Properties, Solution Property Pages Dialog Box(英文)。

          控制生成配置

          生成配置分為兩類:解決方案和項(xiàng)目。以下各節(jié)概要介紹如何通過編程方式創(chuàng)建和控制每種類型的配置。

          解決方案生成配置

          解決方案生成配置指定如何生成解決方案中的特定項(xiàng)目,以及如何部署這些項(xiàng)目(如果已啟用)。解決方案包含兩種默認(rèn)的生成配置:Debug(調(diào)試)和 Release(發(fā)布)。使用“Configuration Manager(配置管理器)”對話框,您可以新建解決方案配置、刪除配置或編輯現(xiàn)有配置。您也可以使用 SolutionConfiguration 對象通過編程方式來執(zhí)行上述操作。下面的 VSMacro 示例說明了實(shí)現(xiàn)上述操作的方法。

          Sub SolutionConfigurationExample()

             ' 將解決方案配置設(shè)置為 Release(發(fā)布)。

          Dim SolnCfg As SolutionConfiguration = DTE.Solution. _

           SolutionBuild.SolutionConfigurations.Item("Release")

         ' 去掉下一行中的注釋標(biāo)記將刪除當(dāng)前選定的配置。

         ' 注意:不能刪除最后一個解決方案配置。

         'SolnCfg.Delete()

         ' 創(chuàng)建新的基于現(xiàn)有 Debug(調(diào)試)生成配置的

         ' 解決方案配置。新的配置必須以現(xiàn)有配置為基礎(chǔ)。

         DTE.Solution.SolutionBuild.SolutionConfigurations.Add("NewSolnCfg", _

           "Debug", False)

         ' 激活指定的解決方案配置,本示例中為

         ' “NewSolnCfg”。

         SolnCfg = DTE.Solution.SolutionBuild.SolutionConfigurations. _

           Item("NewSolnCfg")

         SolnCfg.Activate()

      End Sub

          解決方案上下文是顯示在解決方案的“Configuration Manager(配置管理器)”對話框中的一行設(shè)置,即:Project(項(xiàng)目)、Project Configuration(項(xiàng)目配置)、Platform(平臺)以及是否生成。SolutionContext 對象表示這一行屬性值,SolutionContexts 集合包含該解決方案配置的所有行。

          以下示例列出了“Debug(調(diào)試)”解決方案配置中每個項(xiàng)目的所有解決方案上下文值。

      Sub SolnCtx()

         ' 選擇“Debug(調(diào)試)”解決方案配置。

         Dim SolnCfg As SolutionConfiguration = DTE.Solution. _

           SolutionBuild.SolutionConfigurations.Item("Debug")

         Dim SolnCtx As SolutionContext

         Dim SolnCtxs As SolutionContexts = SolnCfg.SolutionContexts

         Dim msg As String

         ' 列出解決方案中每個項(xiàng)目的解決方案上下文值。

         For Each SolnCtx In SolnCtxs

            msg = "項(xiàng)目名稱:" & SolnCtx.ProjectName & vbCr

            msg = msg & "配置名稱:" & SolnCtx.ConfigurationName & _

              vbCr

            msg = msg & "平臺名稱:" & SolnCtx.PlatformName & vbCr

            msg = msg & "是否生成:" & SolnCtx.ShouldBuild & vbCr

            msg = msg & "是否部署:" & SolnCtx.ShouldDeploy & vbCr

            MsgBox(msg)

         Next

      End Sub

          項(xiàng)目生成配置

          項(xiàng)目生成配置包括多組用于調(diào)試、生成、部署等的設(shè)置。這些配置設(shè)置列在“Project Property Pages(項(xiàng)目屬性頁)”對話框中。通過在解決方案資源管理器中用右鍵單擊某個項(xiàng)目并選擇“屬性”,便可以查閱這些設(shè)置??捎玫捻?xiàng)目配置名稱和平臺名稱顯示在對話框頂部的下拉框中。

          對話框中的“Common Properties(公共屬性)”和“Configuration Properties(配置屬性)”節(jié)點(diǎn)列出了您可以更改的、所有可用的項(xiàng)目生成配置的屬性。例如,要查看或更改生成屬性,可以單擊 “Configuration Properties(配置屬性)”下的“Build(生成)”節(jié)點(diǎn)。更改設(shè)置并選擇“確定”后,該特定配置名稱和平臺名稱的設(shè)置便被保存下來。使用 Visual Studio .NET 自動化模型中的對象,您可以通過編程方式控制項(xiàng)目生成配置中的設(shè)置。

          有關(guān)生成配置的工作原理以及如何創(chuàng)建生成配置的詳細(xì)信息,請參閱 Default and Custom Builds(英文)。

          下面的 VSMacro 示例演示了如何更改項(xiàng)目的生成配置中的設(shè)置的值。

      Sub ProjConfig()

         ' 此示例說明如何更改指定項(xiàng)目的生成配置中的

         ' “定義跟蹤常量”設(shè)置的布爾值。

         ' 此示例要求有一個已加載的項(xiàng)目。

         Dim Proj As Project = DTE.VBProjects.Item(1)

         MsgBox("項(xiàng)目名稱:" & Proj.Name)

         MsgBox("要更改的項(xiàng)目配置屬性:" &    Proj. _

           ConfigurationManager.ActiveConfiguration.Properties.Item(3).Name)

         MsgBox("當(dāng)前值:" & Proj.ConfigurationManager. _

           ActiveConfiguration.Properties.Item("DefineTrace").Value)

           Proj.ConfigurationManager.ActiveConfiguration.Properties.Item _

             ("DefineTrace").Value = True

         MsgBox("新值:" & Proj.ConfigurationManager. _

           ActiveConfiguration.Properties.Item("DefineTrace").Value)

      End Sub

          控制項(xiàng)目配置屬性的另一種方法是使用 ConfigurationManager 對象。下面的示例演示了如何執(zhí)行此操作。

      Sub CfgMgrExample()

         ' 此示例說明如何使用 ConfigurationManager

         ' 對象來設(shè)置項(xiàng)目配置屬性。

         Dim Proj As Project = DTE.VBProjects.Item(1)

         Dim msg As String

         msg = "項(xiàng)目名稱:" & Proj.Name & vbCr

         msg = msg & "項(xiàng)目屬性名稱:" & Proj.ConfigurationManager. _

           Item(1).Properties.Item(1).Name & vbCr

         msg = msg & "項(xiàng)目屬性值:" & Proj.ConfigurationManager. _

           Item(1).Properties.Item(1).Value & vbCr

         MsgBox(msg)

         msg = ""

         Proj.ConfigurationManager.Item(1).Properties.Item(1).Value = False

         msg = "項(xiàng)目名稱:" & Proj.Name & vbCr

         msg = msg & "項(xiàng)目屬性名稱:" & Proj.ConfigurationManager. _

           Item(1).Properties.Item(1).Name & vbCr

         msg = msg & "項(xiàng)目屬性值:" & Proj.ConfigurationManager. _

           Item(1).Properties.Item(1).Value & vbCr

         MsgBox(msg)

      End Sub

          啟動解決方案和項(xiàng)目的生成

          使用 Visual Studio .NET 自動化模型,您可以通過編程方式執(zhí)行解決方案和項(xiàng)目的生成。實(shí)現(xiàn)此功能的主要對象是 SolutionBuild 對象。使用此對象可以:

          · 通過調(diào)用 SolutionBuild 對象的 Build 方法生成解決方案。

          · 通過調(diào)用 BuildProject 方法在解決方案中生成特定項(xiàng)目。

          · 通過調(diào)用 Debug 方法來啟動解決方案的“調(diào)試”生成。

          · 通過調(diào)用 Deploy 方法來部署解決方案中的某些項(xiàng)目。

          · 通過調(diào)用 Run 方法來執(zhí)行指定的啟動項(xiàng)目。

          SolutionBuild 對象的各種屬性還允許您訪問:

          · 活動配置(即,生成解決方案時將會使用的當(dāng)前解決方案配置)。

          · 生成依賴項(xiàng)(即,哪些項(xiàng)目依靠其他項(xiàng)目才能正確生成)。

          · 生成狀態(tài)(即,生成是否在當(dāng)前環(huán)境會話中已啟動過,生成當(dāng)前是否正在進(jìn)行,或者生成是否已完成)。

          SolutionBuild 對象還包含 Clean 方法,調(diào)用此方法可以從項(xiàng)目(標(biāo)記為在活動解決方案配置中生成)中刪除編譯器生成的支持文件。此外,SolutionBuild 對象還具有其他屬性。要獲得完整列表,請參閱 SolutionBuild Object Properties, Methods, and Events(英文)。

          下面的示例演示了如何啟動當(dāng)前解決方案配置的生成。此示例假定您的生成配置名為“MyBuildConfig”。

          Sub SolutionBuildExample()

        ' 生成活動解決方案配置。

        Dim sb As SolutionBuild = DTE.Solution.SolutionBuild

        sb.SolutionConfigurations.Item("MyBuildConfig").Activate

        sb.Build

      End Sub

          下面的示例演示了如何啟動解決方案中特定的項(xiàng)目及其依賴項(xiàng)的生成。此示例假定您的生成配置名為“MyBuildConfig”,并且當(dāng)前的解決方案包含名為“ConsoleApplication1”的項(xiàng)目。

      Sub ProjectBuildExample()

         ' 生成解決方案中指定的項(xiàng)目。

         Dim sb As SolutionBuild = DTE.Solution.SolutionBuild

         sb.BuildProject("MyBuildConfig", "ConsoleApplication1", False)

      End Sub

          注意:WaitForBuildToFinish 標(biāo)志用于確定生成操作是否保留控制直至完成生成操作。默認(rèn)值為 False。如果將 WaitForBuildToFinish 設(shè)置為 False(即控制在啟動生成操作后立即返回),則可以使用 BuildDone 事件來確定生成操作完成。

          項(xiàng)目生成依賴項(xiàng)

          Visual Studio.NET 生成配置模型還允許您使用 BuildDependencies 屬性來定義兩個項(xiàng)目之間在生成上的依存關(guān)系。下面的示例說明了如何使 Project1 依賴于 Project2,這樣,在生成解決方案時就必須先生成 Project2。

      Sub BuildDependenciesExample()

         ' 使 Project 1 依賴于 Project 2。

         Dim p1 As Project = DTE.Solution.Item(1)  ' 項(xiàng)目 1

         Dim p2 As Project = DTE.Solution.Item(2)  ' 項(xiàng)目 2

         Dim sb As SolutionBuild = DTE.Solution.SolutionBuild

         sb.BuildDependencies.Item(p1.UniqueName).AddProject(p2.UniqueName)

      End Sub

          定義啟動項(xiàng)目

          Startup Project(啟動項(xiàng)目)定義啟動 Visual Studio 調(diào)試器時要運(yùn)行的項(xiàng)目。您可以使用 SolutionBuild 對象的 StartupProjects 屬性通過編程方式來定義此設(shè)置。

          注意:目前的 Visual Studio .NET 版本中的 StartupProjects 集合只允許設(shè)置一個啟動項(xiàng)目,但將來的版本中將允許設(shè)置多個啟動項(xiàng)目。

          下面的示例演示了如何查看和更改當(dāng)前的啟動項(xiàng)目。

      Sub StartUpProj()

         ' 此示例要求解決方案中存在兩個項(xiàng)目。

         Dim sb As SolutionBuild = DTE.Solution.SolutionBuild

         Dim p1 As Project = DTE.Solution.Item(1)  ' 項(xiàng)目 1

         Dim p2 As Project = DTE.Solution.Item(2)  ' 項(xiàng)目 2

         MsgBox("當(dāng)前啟動項(xiàng)目:" & sb.StartupProjects(0))

         ' 將啟動項(xiàng)目更改為另一個項(xiàng)目。

         sb.StartupProjects = p1.UniqueName

         MsgBox("新啟動項(xiàng)目:" & sb.StartupProjects(0))

      End Sub

          總結(jié)

          Visual Studio .NET 自動化生成模型為通過編程方式控制解決方案和項(xiàng)目以及它們的生成配置提供了許多選項(xiàng)。要進(jìn)一步了解 Visual Studio .NET 自動化生成模型與 IDE 之間的關(guān)系,請使用對象瀏覽器瀏覽“The Solution and Project Automation Build Model Objects”中列出的對象,并且將它們的成員與各對話框進(jìn)行比較。練習(xí)使用模型,以便了解其工作原理。您還可以查閱 Visual Studio .NET 自動化示例 Web 站點(diǎn)上的“PrePostBuildRules Add-In”示例,網(wǎng)址為:http://msdn.microsoft.com/vstudio/nextgen/automation.asp(英文)。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多