因此,对于必须在Team Build/MSBuild环境中集成遗留项目/代码的构建/编译的人来说,这是一个问题 - 特别是Visual Basic 6应用程序/项目.
在编写自定义构建任务(我不反对)之外,是否有人对如何最好地将遗留VB6项目的编译和版本集成到MSBuild构建中有任何建议?
我知道CodePlex上的FreeToDev msbuild任务,但它们目前已被撤回.
理想情况下,我正在寻找版本并编译代码以及捕获msbuild日志的编译输出(尤其是错误).
我已经看到了在自定义任务中封装此功能的建议,但是真的想知道是否有人尝试过另一种解决方案(除了执行shell命令) - 实质上,是否有人有"更清洁"的解决方案?
理想情况下,执行命令将是最后的手段..
我们使用微软的ActiveX/COM(VB6)技术开发了一个软件系统.在过去的一年里,我对自动化构建流程和SCM的整体兴趣越来越大.我仔细搜索了网络的大部分内容,以获取有关如何使用基于COM的软件系统进行scm的最佳实践的信息.
COM的"问题"是,引用组件通过唯一的接口ID保存引用.重新编译引用的组件时,id可能会更改,并且引用不再有效.这里的主要问题是,iid被编译成二进制文件.因此,当我不想将已编译的文件签入版本控制时,每个开发人员都必须编译他/她自己的版本并获取其他ID.
当我想在干净的构建机器上检查源代码来编译系统时,它是不可能的,因为所有引用都是无效的(没有二进制文件,没有接口ID).
我只是想知道,如果有一些最佳实践,如何为COM项目(VB6)设置自动构建系统?
编辑: 是的,我知道兼容性设置.但是采取这种情况,我想在没有任何二进制文件的干净构建机器上构建wohle系统.当您说项目是二进制兼容的时,您必须提供与项目兼容的二进制文件.
我想我必须编写一个自定义构建工具,它在编译项目之前和之后修改项目文件中的引用和兼容性设置.
因为VB6/COM是一种非常广泛的技术,我只是认为必须有一个随时可用的解决方案.
我们通常用二进制兼容性编译.当我们修改组件的公共接口时,我们使用项目兼容性进行编译.但是当您更改许多其他组件使用的基本组件的接口时,您必须手动将所有引用项目更改为项目兼容性,重新编译它们并更改回二进制兼容性.这是我想要自动化的主要过程.
我正在使用 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 之类的列表,那么我可以将它们传递给另一个目标依次注册/注销它们的过程...
这有意义吗?这可能吗,我是否以正确的方式看待这个问题?或者,还有更好的方法?
我很抱歉,我已经在房子周围解释了这一点......!