Svn 使用NAnt和Ivy构建VB6项目

Svn 使用NAnt和Ivy构建VB6项目,svn,vb6,nant,ivy,continuous-integration,Svn,Vb6,Nant,Ivy,Continuous Integration,我正在使用Subversion、CruiseControl、NAnt和Ivy为.Net和VB6应用程序开发一个持续集成系统 Net方面的东西不是太大的问题,但我需要一些关于VB6方面的指导,更多来自“DLL地狱”方面的东西 我当前的设置是按预期获取VB6系统的所有依赖文件,并在ok中生成各种项目。但是它使用的是已经在我的电脑上注册的DLL,而不是在我的Lib文件夹中注册的DLL,我正在从Ivy解析我的依赖关系 我可以通过在Ivy解决下载的DLL后注册它们来解决这个问题,这意味着项目文件可以指向本

我正在使用Subversion、CruiseControl、NAnt和Ivy为.Net和VB6应用程序开发一个持续集成系统

Net方面的东西不是太大的问题,但我需要一些关于VB6方面的指导,更多来自“DLL地狱”方面的东西

我当前的设置是按预期获取VB6系统的所有依赖文件,并在ok中生成各种项目。但是它使用的是已经在我的电脑上注册的DLL,而不是在我的Lib文件夹中注册的DLL,我正在从Ivy解析我的依赖关系

我可以通过在Ivy解决下载的DLL后注册它们来解决这个问题,这意味着项目文件可以指向本地Lib文件夹;但是我想让我的NAnt脚本自动完成这项工作,然后在构建过程完成后自动取消注册它们,这样下一个项目就可以完成同样的工作

我认为我需要帮助的是让Ivy给我一份项目依赖性列表的能力

例如,如果我正在构建项目X,它依赖于项目A、B和C,那么如果我可以向Ivy发出一个命令,该命令将返回一个列表,如A、B、C,那么我可以将它们传递给另一个目标进程,以依次注册/注销它们

这有意义吗?这是可能的吗?我看得对吗?还是有更好的办法


我很抱歉,我已经走遍了所有的房子来解释这个

我们将项目引用保存在VBP文件旁边的单独REF文件中,并在编译期间使用自定义工具“修复”VBP。我们的构建过程深受启发,我们的REF文件直接抄袭了他所描述的结构

根据我们的工作方式,您可以通过链接找到一个实用程序,该实用程序在没有外部文件的情况下执行相同的“修复”


基本上,修复程序必须使用tlbinfo从可执行文件(OCX/DLL)中提取LIBID,并完全替换VBP文件中引用的guid。一旦使用了这个不太复杂的过程,您的项目是否使用二进制或项目兼容性就无关紧要了。此外,如果执行完整构建,则无需注册以前的OCX/DLL。

建议在本节中使用。其他答案也值得一看

我自己找到了答案

我不想使用Ivy按需为我生成依赖项列表,我想我应该使用文件系统为我提供相同的列表,因为Ivy为我解决了依赖项,结果是“lib”文件夹中充满了.dll文件

我所做的就是在lib文件夹中获得一个.dll文件列表,将它们存储在一个属性(变量)中,然后根据需要循环使用相同的属性注册/注销


真的很简单

我希望能够对我的VB6项目采取与.Net项目相同的方法。我自己已经找到了解决方案(见下文),但感谢您的帮助。