سؤال

لقد قرأت أنه يمكنني استخدام Nant أو ملف دفعي الذي سوف تستدعي CCNET. ما هي أفضل الممارسات هنا؟ أي مساعدة في هذا سيكون لي عظيم!

فيما يلي مقتطف من قسم ccnet.config

      <tasks>
        <msbuild>
            <ItemGroup>
                <FilesToDelete Include="C:\CruiseControl\Working\\\**\*"/>
            </ItemGroup>
            <Target Name="Task" DependsOn="Preparation">
                  build
            </Target>
            <Target Name="Preparation">
                  <Delete Files="@(FilesToDelete)" />
            </Target-->
            <executable>                                                      
                C:\WINDOWS\microsoft.net\Framework64\v3.5\MSBuild.exe                                              
            </executable> 
            <projectFile>Example.sln</projectFile>  
            <buildArgs>
                /p:Configuration=Release /p:MSBuildExtensionsPath=C:\Progra~2\MSBuild /p:MSBuildEmitSolution=1 /verbosity:minimal
            </buildArgs>                                                      
            <logger>
                C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll
            </logger>
        </msbuild>
      </tasks>
هل كانت مفيدة؟

المحلول

لقد وجدت الإجابة على سؤالي الأصلي:

كان علي ببساطة أن أضع cleancopy صحيحًا داخل كتلة Sourcecontrol.

<sourcecontrol type="svn">                                            
    <trunkUrl>TRUNK-URL</trunkUrl>                
    <executable>SVN.EXE</executable>           
    <username>TEST</username>                                         
    <password>TEST</password> 
    <cleanCopy>true</cleanCopy>         
  </sourcecontrol>

نصائح أخرى

لا أعتقد أن تعديل نص MSBuild هو الحل الأسهل هنا. إن حذف نسخة العمل ليس جزءًا من البناء نفسه ، فهو جزء من عملية بناء CC .NET. أنت في حاجة إليها عند البناء باستخدام CC.Net ، وليس عند البناء مع VS أو غير ذلك.

ما سأفعله هو إما أن أفعل ذلك مع الدُفعة أو PowerShell أو نص MSBuild. يعد حذف الدليل أمرًا واضحًا ومباشرًا ، لذا أوصي بالقيام بذلك مع الدفعة:

<prebuild>
     <exec>
        <executable>cmd.exe</executable>
        <buildArgs>/c "if exist "C:\CruiseControl\Working" rd /s /q "C:\CruiseControl\Working""</buildArgs>
    </exec>
</prebuild>

<tasks>

    <msbuild>
        <executable>                                                      
            C:\WINDOWS\microsoft.net\Framework64\v3.5\MSBuild.exe                                              
        </executable> 
        <projectFile>Example.sln</projectFile>  
        <buildArgs>
            /p:Configuration=Release /p:MSBuildExtensionsPath=C:\Progra~2\MSBuild /p:MSBuildEmitSolution=1 /verbosity:minimal
        </buildArgs>                                                      
        <logger>
            C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll
        </logger>
    </msbuild>
  </tasks>

يمكنك بالفعل جعل الجزء الأول من مهمة MSBuild الخاصة بك إعداد دليل الإصدار عن طريق القيام بالتنظيف

يمكنك القيام بذلك عن طريق المجال شيء مشابه لهذا

<ItemGroup>
    <FilesToDelete Include="<PathGoesHere>\**\*"/>
</ItemGroup>

<Target Name="Task" DependsOn="Preparation">
      //normal task happens here
</Target>

<Target Name="Preparation">
      <Delete Files="@(FilesToDelete)" />
</Target>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top