0

以下は、チェックインを実行してビルドを強制しても、アセンブリのバージョン番号が更新されないにもかかわらず、私が使用している構成です。

おそらく私は何かを見逃しています。

注:サーバーを構築するのは初めてで、これが初めてです。さまざまなプロジェクトの下に、多数の Assemblyinfo.cs ファイルがあります。

これを回避するには、msbuildtaks を使用する必要がありますか? もしそうなら、例を手伝ってもらえますか。

<cruisecontrol xmlns:cb="urn:ccnet.config.builder" xmlns="http://thoughtworks.org/ccnet/1/8">
 <!-- preprocessor settings -->
 <cb:define ArtifactsDir="\Artifacts" />
 <cb:define ProductNameCompanySvnPath = "D:\CompanySvn\Trunk\Source\"/>
 <cb:define TortoiseSvnExe = "C:\Program Files\TortoiseSVN\bin\svn.exe"/>
 <cb:define SvnPathToBuild = "http://dummy.mummy.com/svn/Company/branches/Branch-meau/" />
 <cb:define NantExecutablePath = "C:\Program Files\NANT\bin\nant.exe"/>
 <cb:define BranchNameCI="_BR_Meau_CI"/>
 <cb:define BuildMode = "Release"/>
 <cb:define PlatformCpu = "X86"/>
 <cb:define MsBuildExecutable = "C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe" />
 <cb:define MajorVersionNumber = "4"/>
 <cb:define MinorVersionNumber = "1"/>

<cb:define name="svn_ci_ProductName">
    <executable>$(TortoiseSvnExe)</executable>
    <workingDirectory>$(ProductNameCompanySvnPath)ProductName.Company\</workingDirectory>
    <trunkUrl>$(SvnPathToBuild)ProductName.Company/</trunkUrl>
    <cleanUp>true</cleanUp>
    <autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_Database">
    <executable>$(TortoiseSvnExe)</executable>
    <workingDirectory>$(ProductNameCompanySvnPath)Database\</workingDirectory>
    <trunkUrl>$(SvnPathToBuild)Database/</trunkUrl>
    <cleanUp>true</cleanUp>
    <autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_ThirdParty">
    <executable>$(TortoiseSvnExe)</executable>
    <workingDirectory>$(ProductNameCompanySvnPath)ThirdParty\</workingDirectory>
    <trunkUrl>$(SvnPathToBuild)ThirdParty/</trunkUrl>
    <cleanUp>true</cleanUp>
    <autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_Release">
    <executable>$(TortoiseSvnExe)</executable>
    <workingDirectory>$(ProductNameCompanySvnPath)Release\</workingDirectory>
    <trunkUrl>$(SvnPathToBuild)Release/</trunkUrl>
    <cleanUp>true</cleanUp>
    <autoGetSource>true</autoGetSource>
</cb:define>
  <project name="Company_SVN_Build" description="Build Trunk after merge.">
    <workingDirectory>$(ProductNameCompanySvnPath)ProductName.Company\</workingDirectory>
    <!--<triggers>
     check the source control every X time for changes, and run the tasks if changes are found 
      <intervalTrigger name="continuous" seconds="30" buildCondition="IfModificationExists" initialSeconds="5"/>
    </triggers>-->
    <triggers>
        <intervalTrigger name="continuous" seconds="180" buildCondition="IfModificationExists" initialSeconds="30" />
    </triggers>
    <labeller type="assemblyVersionLabeller">
      <major>$(MajorVersionNumber)</major>
      <minor>$(MinorVersionNumber)</minor>
      <incrementOnFailure>true</incrementOnFailure>
    </labeller>
    <!-- get all the souce from the branch required to build the binaries. -->
    <sourcecontrol type="multi">
     <sourceControls>
      <svn>
         <cb:svn_ci_ProductName/>
      </svn>
      <svn>
         <cb:svn_ci_Database/>
      </svn>
      <svn>
         <cb:svn_ci_ThirdParty/>
      </svn>
      <svn>
         <cb:svn_ci_Release/>
      </svn>
     </sourceControls>
    </sourcecontrol>
    <tasks>
        <msbuild>
           <executable>$(MsBuildExecutable)</executable>
           <projectFile>$(ProductNameCompanySvnPath)ProductName.Company\ProductName.Company.sln</projectFile>
           <buildArgs>/p:Configuration=Release /p:Platform=$(PlatformCpu) /v:diag</buildArgs>
           <targets>clean</targets>
           <timeout>9000</timeout>
           <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
         </msbuild>
         <msbuild>
           <executable>$(MsBuildExecutable)</executable>
           <projectFile>$(ProductNameCompanySvnPath)ProductName.Company\ProductName.Company.sln</projectFile>
           <buildArgs>/p:Configuration=Release /p:Platform=$(PlatformCpu) /v:diag</buildArgs>
           <targets>Build</targets>
           <timeout>9000</timeout>
           <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
         </msbuild>
        <exec>
          <executable>Prepare_ProductName_Release.bat</executable>
          <baseDirectory>$(ProductNameCompanySvnPath)Release</baseDirectory>
          <buildArgs>all</buildArgs>
          <buildTimeoutSeconds>100</buildTimeoutSeconds>
        </exec>
    </tasks>
    <!-- all plublishers are listed below -->
    <publishers>
      <xmllogger />
      <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
    </publishers>
  </project>
<!-- End Projects -->
</cruisecontrol>
4

1 に答える 1

0

これを正しく読んでいる場合:

CC.NET は Assemblyinfo.cs ファイルにタグを付けません。あなたはそれを自分でしなければなりません。CC.NET コンテキストの「バージョン」は、ビルドの基数/序数です。最初のビルドは「1」、次に「2」などになります。

ここで私の AssemblyInfo.cs の「タグ付け」の例を参照してください: SVN リビジョンを使用して CCNET でビルドにラベルを付ける

SVN リビジョンでタグ付けすることを好みます。CC.NET版をご利用いただけます。

私がCC.NETについて考える方法は、「ビルド後のレポートを備えた、非常に派手なmsbuild呼び出し元」です。

于 2013-05-01T18:40:58.267 に答える