【问题标题】:Vb6 project files and source safeVb6 项目文件和源代码安全
【发布时间】:2010-05-23 12:16:21
【问题描述】:

我正在处理的应用程序的一部分是旧版 Vb6 Windows 窗体应用程序。除 Vb6 项目文件外,项目中的所有文件均受源代码控制 (VSS) 控制。从我可以从从事该项目的其他开发人员那里确定的原因是,项目中使用的 com 组件在每台开发人员机器上都有不同的引用。我想将项目文件移动到 VSS 中,以便在将文件添加到项目时可以在项目文件中更新这些文件,并且其他开发人员(更重要的是自动构建脚本)可以从源代码安全获取最新的项目文件。

有谁知道我是否/如何以不破坏对不同开发机器上其他 com 组件的引用的方式实现这一点?

【问题讨论】:

标签: com vb6 visual-sourcesafe


【解决方案1】:

我不同意你的同事。如果每个开发人员在他们的机器上都需要不同的引用,我敢打赌你对 COM 类型有一些奇怪的用法。很可能您已将 CoClass 类型和接口类型编译到您的 dll 中。

COM 就是将接口与实现分开(尽管 VB6 最好通过为每个 CoClass 创建默认接口而不告诉您它们来撤消这一点)。将您的类型移动到 TLB 类型库并在您的项目中引用它。让每台机器上的 COM 注册处理实例化了哪些特定的类;这就是它的用途。

如果您的团队正在为 COM 引用而苦苦挣扎,那么更深层次的问题是错误的。

【讨论】:

    【解决方案2】:

    长话短说,不。

    真正的问题是开发人员没有从同一个地方获取他们的 COM 组件,要么是因为他们在本地编译它们,要么是因为他们正在获取同一组件的不同版本。如果 COM 对象没有持续开发,真正的解决方案是让所有开发人员安装他们需要的相同版本的组件。

    【讨论】:

      【解决方案3】:

      您需要维护一个描述您的开发项目文件夹结构的标准。例如,我总是建议创建一个替代驱动器 SUBST。例如 SUBST H: C:\DEV_\APP\Visual Studio 2008。这允许开发人员将他的东西放在他需要的地方。在这个“新”驱动器中,我推荐一个“系统”文件夹。每个 COM 对象和依赖项都放置在一个子文件夹中。所有项目仅从 H:/System/ 引用 COM 对象。不同的 COM 版本进入一个新的版本,该版本作为文件夹名称的一部分。例如,C:\DEV_\APP\DEV\SYSTEM\Iocomp 和 C:\DEV_\APP\DEV\SYSTEM\Iocomp2。

      (不要忘记从正确的路径,“新”驱动器注册 COM 对象。)

      我在启动时使用批处理文件来设置四个不同的开发驱动器。

      使用 SUBST 的好处是,您可以签出到不同的文件夹,然后为该文件夹创建一个“H”驱动器,一切正常。

      自 1996 年以来,我一直在使用这种技术,效果非常好。我从来没有任何问题。最难的部分是让其他人了解这项技术。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        相关资源
        最近更新 更多