Ciągła integracja - buduj skrypty

Teraz przyjrzyjmy się niektórym aspektom pliku MSBuild, aby zobaczyć, co one oznaczają. Te aspekty są ważne do poznania z cyklu ciągłej integracji.

Skrypty budujące służą do budowy rozwiązania, które będzie częścią całego cyklu ciągłej integracji. Spójrzmy na ogólny skrypt kompilacji, który jest tworzony jako część programu Visual Studio w.Netdla naszego przykładowego rozwiązania. Skrypt budowania jest dość duży, nawet jak na proste rozwiązanie, więc przejdziemy przez najważniejsze jego części. Domyślnie skrypt kompilacji będzie przechowywany w pliku o tej samej nazwie, co główne rozwiązanie w programie Visual Studio. Więc w naszym przypadku, jeśli otworzysz plikSimple.csprojzobaczysz wszystkie ustawienia, które zostaną użyte do zbudowania rozwiązania.

  • Zależność od używanej wersji programu MSBuild - poniższe ustawienia będą używać plików MSBuild zainstalowanych na serwerze CI.

<VisualStudioVersion Condition = "'$(VisualStudioVersion)' == 
   ''">10.0</VisualStudioVersion>

<VSToolsPath Condition = "'$(VSToolsPath)' == ''"> 
   $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
</VSToolsPath>

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

<Import Project = "$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project = "$(VSToolsPath)\WebApplications\
   Microsoft.WebApplication.targets" Condition = "'$(VSToolsPath)' ! = ''" />

<Import Project = "$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\
   WebApplications\Microsoft.WebApplication.targets" Condition = "false" />
  • Jakie pliki są wymagane do prawidłowego skompilowania rozwiązania - plik ItemGrouptag będzie zawierał wszystkie niezbędne pliki .Net, które są wymagane do pomyślnego zbudowania projektu. Te pliki będą musiały odpowiednio znajdować się na serwerze kompilacji.

<ItemGroup>
   <Reference Include = "Microsoft.CSharp" />
   <Reference Include = "System.Web.DynamicData" />
   <Reference Include = "System.Web.Entity" />
   <Reference Include = "System.Web.ApplicationServices" />
   <Reference Include = "System.ComponentModel.DataAnnotations" />
   <Reference Include = "System" />
   <Reference Include = "System.Data" />
   <Reference Include = "System.Core" />
   <Reference Include = "System.Data.DataSetExtensions" />
   <Reference Include = "System.Web.Extensions" />
   <Reference Include = "System.Xml.Linq" />
   <Reference Include = "System.Drawing" />
   <Reference Include = "System.Web" />
   <Reference Include = "System.Xml" />
   <Reference Include = "System.Configuration" />
   <Reference Include = "System.Web.Services" />
   <Reference Include = "System.EnterpriseServices"/>
</ItemGroup>
  • Jakie ustawienia serwera sieci Web mają być używane - kiedy odwiedzimy nasz temat ciągłego wdrażania, zobaczysz, jak program MSBuild zostanie użyty do zastąpienia tych ustawień i wdrożenia tego na naszym wybranym serwerze.

<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>59495</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl></IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>