У меня есть приложение и общая библиотека с отдельными триггерами сборки CC (при успешной сборке библиотеки также будет запускаться сборка приложения) с настройкой очереди, чтобы убедиться, что CC не пытается собрать приложение до Библиотека закончена.
Нечто странное произошло этим утром. Я работаю над медленным VPN и внес несколько изменений в свое приложение и общую библиотеку (все это было сделано как один коммит). Сначала CC выполнила сборку моего приложения, которое не удалось, потому что не удалось найти два новых класса в общей библиотеке. После этого общая библиотека была успешно построена, а затем успешно создана моя программа.
Похоже, что CC пытался выполнить сборку после того, как изменения в моем приложении были загружены на сервер сборки, но до того, как поступили изменения в библиотеку. Возможно ли это, или мне нужно искать в другом месте, чтобы выяснить причину?
Это ошибка, которую я получил в журнале сборки приложения:
<error code="CS0246" file="SomeClass.cs" line="###" column="###"><![CDATA[The type or namespace name 'ClassAddedToSharedLibraryInThisCommit' could not be found (are you missing a using directive or an assembly reference?)]]></error>
Ниже приведена выдержка из моего файла CCnet.config:
<project name="App1" queue="hourly" queuePriority="2">
<triggers>
<multiTrigger operator="Or">
<triggers>
<projectTrigger project="sharedLib">
<triggerStatus>Success</triggerStatus>
<innerTrigger type="intervalTrigger" seconds="30" buildCondition="ForceBuild"/>
</projectTrigger>
<filterTrigger startTime="16:00" endTime="7:00">
<trigger type="intervalTrigger" seconds ="625" />
</filterTrigger>
</triggers>
</multiTrigger>
</triggers>
<sourcecontrol type="svn">
<tagOnSuccess>false</tagOnSuccess>
<tagBaseUrl>https://servername/...</tagBaseUrl>
<autoGetSource>true</autoGetSource>
<executable>c:\program files\subversion\bin\svn.exe</executable>
<trunkUrl>https://servername/.../App1/...</trunkUrl>
<workingDirectory>C:\svn\...\App1\...</workingDirectory>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe</executable>
<workingDirectory>C:\svn\...\App1\...</workingDirectory>
<projectFile>App1.sln</projectFile>
<buildArgs>/p:Configuration=Debug /v:m /m</buildArgs>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
<timeout>1000000</timeout>
</msbuild>
</tasks>
</project>
<project name="sharedLib" queue="hourly" queuePriority="1">
<triggers>
<filterTrigger startTime="16:00" endTime="7:00">
<trigger type="intervalTrigger" seconds ="350" />
</filterTrigger>
</triggers>
<sourcecontrol type="svn">
<tagOnSuccess>false</tagOnSuccess>
<tagBaseUrl>https://servername/...</tagBaseUrl>
<autoGetSource>true</autoGetSource>
<executable>c:\program files\subversion\bin\svn.exe</executable>
<trunkUrl>https://https://servername/.../SharedLib/...</trunkUrl>
<workingDirectory>C:\svn\...\sharedLib\...</workingDirectory>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe</executable>
<workingDirectory>C:\svn\...\sharedLib\...</workingDirectory>
<projectFile>sharedLib.csproj</projectFile>
<buildArgs>/p:Configuration=Debug /v:m /m</buildArgs>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
<timeout>1000000</timeout>
</msbuild>
</tasks>
</project>