1

マシンに Cruise Control 1.5 をインストールし、自動ビルドを構成しようとしています。すべてが正常に機能しています。アプリケーションをビルドしています。電子メールを受け取りましたが、ビルド電子メールに FXCop の結果が埋め込まれていません。私は何が欠けていますか?

ccnet.config ファイル

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <project name="SampleProject">
        <webURL>http://localhost/ccnet</webURL>
        <workingDirectory>E:\\NewProject\\DevBuilds</workingDirectory>
        <artifactDirectory>E:\\NewProject\\DevBuilds\Artifacts</artifactDirectory>
        <modificationDelaySeconds>600</modificationDelaySeconds>
        <category>Dev Build</category>
        <sourcecontrol type="svn">
            <trunkUrl>https://mycompany.com/svn/trunk/MyApplication</trunkUrl>
            <workingDirectory>E:\\NewProject\\DevBuilds\SourceCode</workingDirectory>
            <autoGetSource>false</autoGetSource>
            <executable>C:\Program Files\Subversion\bin\svn.exe</executable>
            <username>username</username>
            <password>password</password>
        </sourcecontrol>
        <initialState>Started</initialState>
        <startupMode>UseInitialState</startupMode>

        <triggers>
            <intervalTrigger seconds="3600" buildCondition="IfModificationExists" />
        </triggers>
        <state type="state" directory="E:\\NewProject\\DevBuilds" />
        <labeller type="iterationlabeller">
            <prefix>1.0</prefix>
            <duration>1</duration>
            <releaseStartDate>2012/04/11</releaseStartDate>
            <separator>.</separator>
        </labeller>
        <tasks>
            <nant>
                <executable>E:\NewProject\Installables\nant\bin\nant.exe</executable>
                <baseDirectory>E:\\NewProject\\Build Files</baseDirectory>
                <buildFile>Build.xml</buildFile>
                <targetList>
                    <target>Run</target>
                </targetList>
                <buildTimeoutSeconds>5000</buildTimeoutSeconds>
            </nant>
        </tasks>
        <publishers>
            <merge>
                <files>
                    <file>E:\NewProject\DevBuilds\FxCopOutput\FxCop-results.xml</file>
                </files>
            </merge>
            <xmllogger logDir="E:\\NewProject\\DevBuilds\Artifacts\\buildlogs" />
            <email from="Checkins@symphonysv.com" mailhost="smtp.gmail.com" includeDetails="true" useSSL="false">
                <users>
                    <user name="dev1" group="buildmaster" address="myname@gmail.com"/>
                </users>
                <groups>
                    <group name="buildmaster">
                        <notifications>
                            <notificationType>Always</notificationType>
                        </notifications>
                    </group>
                </groups>
            </email>
        </publishers>
    </project>
</cruisecontrol>

Build.xml

<?xml version="1.0"?>
<project name="Test" default="Run" basedir=".">

    <property name="BuildNumber" value="1.0.0.0"/> 
    <property name="SourceControlURL" value="https://mycompany.com/svn/trunk/MyApplication/"/>
    <property name="BuildFile" value=".\Build.xml"/> 
    <property name="TagBuild" value="false"/> 
    <property name="BuildType" value="Release"/>
    <property name="BuildTargetDir" value="E:\NewProject\DevBuilds\Executables"/> 
    <property name="BuildWorkDir" value="E:\NewProject\DevBuilds\SourceCode"/> 
    <property name="MSBUILD" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"/> 
    <property name="FxCopOutPutDirectory" value="E:\NewProject\DevBuilds\FxCopOutput" />
    <property name="FxCopInputDirectory" value="E:\NewProject\DevBuilds" />


    <target name="Run" description="Starting ThinkPets Build">

        <call target="GetLatestCode"/>
        <call target="BuildCode"/>
        <call target="BuildASPWebSite"/>
        <call target="runFxCop"/>

    </target>

    <target name="GetLatestCode">
        <echo message="Updating Code From SVN to ${BuildWorkDir}"/>
        <exec program="svn.exe">
            <arg line="checkout ${SourceControlURL} ${BuildWorkDir} -q"/>
        </exec>
    </target>

    <target name="BuildCode">
        <echo message="Building VS10 Projects Web" />
        <exec program="${MSBUILD}\msbuild.exe" failonerror="true">
            <arg line=" &quot;${BuildWorkDir}\Application.sln&quot; /t:Rebuild /p:Configuration=Release /V:q"/>
        </exec>
    </target>

    <target name="BuildASPWebSite">
        <echo message="Building ASP Web Site" />
        <exec program="${MSBUILD}\aspnet_compiler.exe" failonerror="true">
            <arg line=" -v / -p &quot;${BuildWorkDir}\MyDir&quot; -f -c &quot;${BuildTargetDir}&quot; "/>
        </exec>
    </target>


    <target name="runFxCop" depends="BuildCode">
        <exec program="C:\Program Files\Microsoft FxCop 1.36\FxCopCmd.exe" failonerror="false"> 
            <arg line="/p:${FxCopInputDirectory}\SampleProject.FxCop /o:${FxCopOutPutDirectory}\FxCop-results.xml"/>  
        </exec>
    </target>



</project>
4

2 に答える 2

0

あなたが見逃したいくつかの点があります:

  1. <includeDetails>true</includeDetails>メール発行者ブロックに追加する必要があります。これにより、HTML メールが送信されます。
  2. <xslFiles>XML ビルド結果を HTML に変換するには、電子メール発行者ブロックにセクションを追加する必要があります。このブロックの要素は、 の XSL 変換ファイルを指します[CCNET_INSTALL_DIR]\server\xsl

したがって、CCNET webdasboard に表示されるのと同じように FxCop の概要を含めるには、これが電子メール発行者ブロックです。

<email from="Checkins@symphonysv.com" mailhost="smtp.gmail.com" includeDetails="true" useSSL="false">
  <users>
    <user name="dev1" group="buildmaster" address="myname@gmail.com"/>
  </users>
  <groups>
    <group name="buildmaster">
      <notifications>
        <notificationType>Always</notificationType>
      </notifications>
    </group>
  </groups>
  <includeDetails>true</includeDetails>
  <xslFiles>
    <file>xsl\fxcop-summary_1_36.xsl</file>
  </xslFiles>
</email>
于 2012-04-17T16:44:14.873 に答える
0

会長様、貴重な時間をありがとうございました。私の間違いは、自分のマシンで「ccnet」アプリケーションをホストしていなかったため、パブリッシャーの xsl を見つけることができなかったことだと思います。「ccnet」アプリケーションがホストされているサーバー マシンで同じ設定と構成ファイルを使用すると、電子メールで FxCop の概要を確認できました。間違っている場合は、私の理解を修正してください。

于 2012-04-18T12:39:12.903 に答える