我是CruiseControl.Net的新手,但花了几天时间设置一个CCNet 1.5服务器并且几乎正在工作但是有一个问题我很难理解。
我们使用Team Foundation Server 2010进行源代码管理,因此我已将ccnet.config文件配置为连接到它。每当我尝试强制构建它时都会出现以下错误:
error MSB1009: Project file does not exist.
Switch: app.sln
当我查看文件系统上的工作目录时,我可以看到除了解决方案(.sln)文件之外,项目的所有文件都已从源代码控制中获取。我已经尝试了几个不同的项目,每次都得到相同的结果。我已经尝试在服务器上搜索app.sln文件,但它不在服务器上,所以由于某种原因它没有从源代码控制中获取。所有其他文件似乎都没问题,包括项目(.csproj)文件。
如果我使用Visual Studio 2010在同一台服务器上签出解决方案,那么它工作正常,我得到所有文件,包括.sln文件。因此,与CCNet相关的东西似乎是在构建的获取源部分过滤sln文件。
以下是我的ccnet.config文件中的XML示例:
<cruisecontrol xmlns:cb = "urn:ccnet.config.builder">
<project name = "projectone">
<sourcecontrol type = "filtered">
<sourceControlProvider type = "vsts" autoGetSource = "true" applyLabel = "true">
<server>http://servername:8080/tfs/collectionname</server>
<username>user</username>
<password>password</password>
<domain>DOMAIN</domain>
<project>$/projectname/appname</project>
<workingDirectory>C:\projects\appname</workingDirectory>
<workspace>[SERVER_NAME]</workspace>
<deleteWorkspace>false</deleteWorkspace>
</sourceControlProvider>
<exclusionFilters>
<userFilter>
<names>
<name>admin</name>
</names>
</userFilter>
</exclusionFilters>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\projects\appname</workingDirectory>
<projectFile>app.sln</projectFile>
<buildArgs>/p:Configuration=Debug /v:diag</buildArgs>
<targets>Build</targets>
<timeout>900</timeout>
<logger>c:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCNet.dll</logger>
</msbuild>
</tasks>
<publishers>
<xmllogger/>
<statistics/>
<modificationHistory onlyLogWhenChangesFound = "true"/>
</publishers>
</project>
</cruisecontrol>
TFS2010和CCNet 1.5在同一台服务器上,暂时都使用域名管理员帐户,所以安全性不应该是真正的问题。
任何建议都会感激不尽。
答案 0 :(得分:0)
我建议升级到CCNet 1.6
发行说明中提到的一些错误修复了vsts源代码控制块:
http://confluence.public.thoughtworks.org/display/CCNET/CCNet+1.6+Release+Notes