我有一个小问题导致我的自动化构建失败。
当我们打开最近从 VS2005 转换为 VS2008 的解决方案时,VS 通过 ClearCase 请求我们签出该解决方案文件。
如果我们允许,那么无论如何它都不会进行任何更改,并且默认情况下 ClearCase 不喜欢在没有更改的情况下签入。所以我们撤消了签出 - 从那时起 VS 很高兴,它能够写入 .suo 文件。
如果我们取消读取保护解决方案文件,启动VS2008它会创建.suo文件,好的,如果我们然后取消劫持.sln文件(无论如何都没有更改,所以VS2008不会注意到)并再次启动VS2008就可以了 -不要求结账。
在我的构建脚本中,我从视图中删除所有视图私有文件,然后通过强制取消劫持受控文件进行更新。然后我们构建部署项目(以及所有依赖项),并且当 .suo 文件被删除时,它每次都会陷入签出 .sln 文件行为。
在构建服务器上,没有人看到要求结账的对话框,构建挂起。
我可以更改(又名 bodge)构建脚本以不删除 .suo 文件,但我宁愿不这样做。
编辑:澄清 - .suo 文件未签入 ClearClase - 它是由 VS2008 创建的视图私有文件,但是为了创建此文件,它想要签出 .sln 文件,但并非真正的原因。
进一步编辑:
我已经找到了解决方案 - 我已经按照我在该线程上的后续帖子禁用了集成。
好吧,我找到了问题的解决方案,而且实际上很简单。
我在生成服务器上禁用了 Visual Studio ClearCase 集成。
使用 VS 是因为我们需要构建部署项目,因此我们调用 devenv 来为我们完成此操作。然而,我们仅将其用作构建引擎,构建引擎永远不需要知道如何修改源项目,因为它们都来自 ClearCase。我们允许构建服务器修改的唯一项目是 AssemblyInfo 文件中的程序集文件版本号属性,但我们在 NAnt 中而不是在 Visual Studio 中执行此操作。
因此,禁用该功能,问题就会消失。可能不是适合所有人的解决方案,但在构建服务器上它是前进的方向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)