我遇到了解Cruise Control的问题。 我想创建一个构建自动化,以便在我的项目中执行构建。为此,我在ccnet.config文件中创建了以下条目
<project name="My Web Release " description="Web config">
<workingDirectory>d:\GIT</workingDirectory>
<triggers/>
<sourcecontrol type="git">
<repository>GIT REPO</repository>
<branch>release-name</branch>
<autoGetSource>true</autoGetSource>
<fetchSubmodules>true</fetchSubmodules>
<executable>C:\Program Files (x86)\Git\cmd\git.exe</executable>
<tagOnSuccess>false</tagOnSuccess>
<commitBuildModifications>false</commitBuildModifications>
<commitUntrackedFiles>false</commitUntrackedFiles>
<tagCommitMessage> Build {0}</tagCommitMessage>
<tagNameFormat>Build-{0}</tagNameFormat>
<committerName>Build</committerName>
<committerEMail>build@build.com</committerEMail>
<workingDirectory>$(workingDirectory)\Sources\WEB</workingDirectory>
<timeout>600000</timeout>
</sourcecontrol>
<tasks>
<msbuild>
<executable>c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
<buildFile>BuildScript.xml</buildFile>
<targets>NewBuild</targets>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
</tasks>
<publishers>
<xmllogger />
<artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
</publishers>
</project>
我确实有一个BuildScript.xml文件。 我的问题是: 这是一个nAnt还是MSBUILD脚本?
我在问,因为我正在尝试遵循文档,但是我遇到了很多关于未知任务等问题。
例如,这个:
<property name="configuration" value="CLOSED" />
会生成一个未知的“属性”任务。
我正在查看MSBuild文档以使用Move task。
我到了这一行:
<move file="originPath" tofile="TargetPath"/>
但我明白了:
BuildScript.xml(18,3):错误MSB4036:“移动”任务不是 找到。请注意以下事项:1。)项目中任务的名称 file与任务类的名称相同。 2.)任务类是 “public”并实现Microsoft.Build.Framework.ITask接口。 3.)在项目文件中或在“C:”中的* .tasks文件中正确声明任务。 \ Windows \ Microsoft.NET \ Framework \ v2.0.50727“目录。
令我发疯的是,我们在迁移到Cruise Control之前就已经开始工作了。
这被解释为nAnt还是MSBuild?关于我为什么会收到这些错误的任何想法?
答案 0 :(得分:3)
它看起来像你的混合nant和msbuild,如果它是msbuild它看起来像
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Tools="4.0">
<Target Name="Move">
<PropertyGroup>
<configuration>CLOSED</configuration>
</PropertyGroup>
<Move SourceFiles="Somefilefile" DestinationFolder="c:\temp"/>
</Target>
</Project>
所以外壳是一个问题,你需要指定工具版本,因为移动可以从4.0开始。