Я новичок в 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 во время получения исходного кода сборки.
Вот пример XML из моего файла ccnet.config:
<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 находятся на одном сервере и в настоящее время используют учетную запись администратора домена, поэтому безопасность здесь не должна быть проблемой.
Любые предложения будут с благодарностью приняты.