2

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

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

我目前的设置是为我的 VB6 系统获取所有依赖文件,正如预期的那样,并在 ok 内构建各种项目。但是...它使用的是已经在我的 PC 上注册的 DLL,而不是我的 Lib 文件夹中的那些,这是我从 Ivy 解决依赖关系的地方。

我可以通过在 Ivy 解析后注册下载的 DLL 来解决这个问题,这意味着项目文件可以指向本地 Lib 文件夹;但我希望我的 NAnt 脚本自动执行此操作,然后在构建过程完成后自动取消注册它们,以便下一个项目反过来可以执行相同的操作。

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

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

这有意义吗?这可能吗?我是否以正确的方式看待这个问题?或者,还有更好的方法?

抱歉,我已经绕着房子转了一圈来解释这个......!

4

3 回答 3

5

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

在 The Way We Work 中,您可以点击LJ Johnson 的 Take Control of Your Build Cycle的链接,该实用程序无需外部文件即可执行相同的“修复”。

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

于 2009-08-04T12:03:09.377 回答
2

在这个答案中推荐使用Visual Build Pro。其他答案也值得一看。

于 2009-08-06T08:47:36.493 回答
1

我自己找到了答案;

与其使用 Ivy 尝试为我按需生成依赖项列表,我认为我会使用文件系统给我相同的列表,因为 Ivy 已经完成了它为我解决依赖项的工作,导致一个充满 .dll 文件的“lib”文件夹...

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

真的很简单..!

于 2009-08-18T15:58:54.857 回答