CCNet 1.5 с TFS 2010 - файл решения никогда не извлекается из системы контроля версий - PullRequest
1 голос
/ 16 января 2012

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

Любые предложения будут с благодарностью приняты.

1 Ответ

0 голосов
/ 17 января 2012

Я бы порекомендовал обновить до CCNet 1.6

В примечаниях к выпуску упоминается несколько ошибок, исправляющих блок управления источником vsts:

http://confluence.public.thoughtworks.org/display/CCNET/CCNet+1.6+Release+Notes

...