并肩显现,炙手可热还是失宠?
最近我们的客户遇到了一些 .dll 地狱问题,所以我想知道 SxS 安装所需的 .dll 和 .ocx 是否是一个好主意。我读到了它,并成功部署了我们的应用程序,至少它的一些依赖项是通过清单满足的,但它仍然是推荐的部署方式,还是过去几年的一种时尚,现在逐渐被放弃?
We have run in some .dll hell problems for our clients lately, so I was wondering if SxS installations of the requiered .dll's and .ocx's is a good idea. I read about it and succeeded in deploying our application when at least some of its dependencies were catered for through a manifest, but is it still the recommended way of deploying, or is it a fad from the last few years and now gradually being abandoned?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不明白为什么它会成为一种时尚。 VB6 中的问题在于,尽管 VB6 SP6 改进了支持并且 XP SP2 提供了更完整的实现,但从未有工具更新来直接支持它。
我们在这里一直使用它,尽管我们发现某些第 3 方控件未正确编写并且无法使用它。例如,许多 vbAccelerator 的东西似乎都以这种方式“损坏”。
现在,我们不使用免注册 COM 进行部署的情况很少见,即使我们将其全部包装在 MSI 包中也是如此。与其他产品的不良安装程序(许多 DLL Hell 的根源)隔离是一个很大的优势,而且 Windows 在系统组件方面的自我保护能力越来越强,这对自身有很大帮助。
诀窍是找到好的工具支持。我从来没有耐心通过 SDK 工具应用 Microsoft 的粗略支持,但我认为其他人有。至少有一种商业产品可以用于此类事情。我们使用我们自己内部开发的工具。
时尚?我们认为这是竞争优势。它确实也使得用 VB6 制作可移植软件变得更加容易!与我们从德国来源看到的一些运行时库加载和黑客工具包不同,您也不必在程序中添加大量繁琐的编码。普通的旧 VB6 程序就可以正常工作。
它支持的另一件事是每用户部署,可以轻松创建为没有提升权限的用户安装的 MSI 包。我们主要不是生产隐形软件,但客户有时会在组织内面临一些高墙,这让他们可以安装我们提供的产品并继续他们的工作。由于我们没有触及注册表或受保护的文件系统区域,因此来自管理员类型的负面反馈几乎为零。 Windows 7 增强了这一点:
为 Windows 7 中的每用户或每计算机安装上下文编写单个包
同样的技术也适用于 Vista,尽管您不这样做无法获得单包功能。构建隔离的应用程序使该过程变得更加容易。
当然,SxS 的含义远不止免注册 COM 和隔离,但用 VB6 术语来说,这可能就是您所讨论的内容。 DotNet 使用它,操作系统也使用它。我不知道为什么它看起来像是一种“时尚”。也许许多人因为对这些工具感到沮丧、从 VB6 转向其他工具或者因为现在的经济竞争非常激烈而在这个问题上保持沉默。
I don't see why it would be a fad. The concern in VB6 is that there was never a tools update to support it directly, though VB6 SP6 improved support and XP SP2 provided a more complete implementation.
We use it all the time here, though we have found that certain 3rd party controls are not properly written and can't work with it. Lots of the vbAccelerator stuff seems to be "broken" in such a way for example.
It's a rare case we don't deploy using reg-free COM now, even when we wrap it all up in an MSI package. Being isolated from other products' poor installers (the source of much DLL Hell) is a big plus, and Windows is getting better about defending itself in terms of system components which helps a lot in itself.
The trick is finding good tools support. I've never had the patience to work through applying Microsoft's sketchy support via SDK tools but I think others have. There is at least one commercial product for this kind of thing. We use our own tools developed in-house.
Fad? We consider it competitive advantage. It sure makes it easier to produce portable software in VB6 too! Unlike some of the runtime library loading and hacking toolkits we've seen from a German source you don't have to add a lot of fiddley coding to your programs either. Just plain old VB6 programs work fine.
The other thing it enables is per-user deployment, making it easy to create MSI packages that install for a user without elevation rights. We're not primarily about producing stealthware but customers sometimes face some high walls within their organization and this lets them install the products we offer and get on with their jobs. Since we aren't touching the registry or protected filesystem areas the negative feedback from admin types has been almost zero. Windows 7 enhanced this:
Authoring a single package for Per-User or Per-Machine Installation context in Windows 7
The same technique works on Vista though you don't get single-package functionality. Building the applications isolated makes the process even easier.
Of course SxS means a lot more than reg-free COM and isolation, but in VB6 terms that's probably what you were talking about. DotNet uses it, the OS uses it. I'm not sure why it might look lke a "fad." Perhaps many people have gone quiet on the subject through frustration with the tools, a move from VB6 to something else, or because the economy is very competitive right now.
我过去曾尝试过 SxS,但在应该运行该应用程序的一定比例的 Windows XP 计算机上遇到问题后停止使用它。
I have experimented with SxS in the past but stopped using it after encountering issues on a certain percentage of Windows XP machines where the application was supposed to run.