最近我们的客户遇到了一些 .dll 地狱问题,所以我想知道 SxS 安装所需的 .dll 和 .ocx 是否是一个好主意。我读到了它,并成功部署了我们的应用程序,至少它的一些依赖项是通过清单满足的,但它仍然是推荐的部署方式,还是过去几年的一种时尚,现在逐渐被放弃?

有帮助吗?

解决方案

我不明白为什么它会成为一种时尚。VB6 中的问题在于,尽管 VB6 SP6 改进了支持并且 XP SP2 提供了更完整的实现,但从未有工具更新来直接支持它。

我们在这里一直使用它,尽管我们发现某些第 3 方控件未正确编写并且无法使用它。例如,许多 vbAccelerator 的东西似乎都以这种方式“损坏”。

我们这种情况很少见 现在,即使我们将其全部包装在 MSI 包中,也可以使用免注册 COM 进行部署。与其他产品的不良安装程序(许多 DLL Hell 的来源)隔离是一个很大的优势,并且 Windows 在系统组件方面正在更好地保护自己,这有助于 很多 在自身。

诀窍是找到好的工具支持。我从来没有耐心通过 SDK 工具应用 Microsoft 的粗略支持,但我认为其他人有。至少有一种商业产品可以用于此类事情。我们使用我们自己内部开发的工具。

时尚?我们考虑一下 竞争优势. 。它确实也使得用 VB6 制作可移植软件变得更加容易!与我们从德国来源看到的一些运行时库加载和黑客工具包不同,您也不必在程序中添加大量繁琐的编码。普通的旧 VB6 程序就可以正常工作。

它支持的另一件事是每用户部署,可以轻松创建为没有提升权限的用户安装的 MSI 包。我们主要不是生产隐形软件,但客户有时会在组织内面临一些高墙,这让他们可以安装我们提供的产品并继续他们的工作。由于我们没有触及注册表或受保护的文件系统区域,因此来自管理员类型的负面反馈几乎为零。Windows 7 增强了这一点:

在 Windows 7 中为每用户或每计算机安装上下文编写单个包

同样的技术也适用于 Vista,尽管你不明白 单包 功能。构建独立的应用程序使该过程变得更加容易。

当然,SxS 的含义远不止免注册 COM 和隔离,但用 VB6 术语来说,这可能就是您所讨论的内容。DotNet 使用它,操作系统也使用它。我不确定为什么它看起来像是“时尚”。也许许多人因对工具的挫败感,从VB6转移到其他东西,或者因为经济目前非常有竞争力而对这个主题进行了安静。

其他提示

我过去曾尝试过 SxS,但在应该运行该应用程序的一定比例的 Windows XP 计算机上遇到问题后停止使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top