我最近控制了维护我们的持续集成系统,该系统提供安装程序(主要用于使用Visual Studio和.NET Framework构建的项目)。
这使用CruiseControl.NET服务器端和CCTray客户端,因此开发人员可以在工作完成后“触发”新的软件版本。源控件由Sourcegear Vault提供。
在您通过CCTray强制构建时,其中一个构建项目在过去几天内开始失败并出现以下错误:
System.Exception:[repositoryName]中没有$ / xxx / yyy的版本0。位于ThoughtWorks.CruiseControl.Core.SourceControl.MultiSourceControl.GetSource的ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressVaultSourceControl.GetSource(IIntegrationResult结果)的ThoughtWorks.CruiseControl.Core.Sourcecontrol.FortressClient.GetVersion(String repositoryFolderPath,String workingDir,Int64 folderVersion) (IIntegrationResult结果)在ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult result)
我已经检查过ccnet.config和这个项目的构建脚本,但一切看起来都是正确的。
有没有人有任何线索?据我所知,开发服务器上没有任何升级。
答案 0 :(得分:0)
我们遇到了同样的问题。我不知道我们是怎么碰到它的,但我们之前杀了ccnetservice。
但是我发现文件ProjectName.fortressState丢失了。我从另一个项目重新创建了该文件,将其重命名为“ProjectName.fortressState”,修改了内容并重新启动了ccnetservice。
之后,该项目再次在ccnet上运行。
答案 1 :(得分:0)
我在这里遇到过一些项目的同样问题。以前建议的解决方案都没有解决它,并且Vault支持在他们的论坛中没有响应:(
到目前为止,我发现的唯一解决方法是创建一个使用新项目名称构建此项目(无论如何)的项目。