【问题标题】:best practice for releasing Microsoft dll's in setup在设置中释放 Microsoft dll 的最佳实践
【发布时间】:2008-08-20 12:22:41
【问题描述】:

我正在处理一个想要包含 Microsoft.Web.Services3 (WSE 3.0) DLL 的设置。但是,我通常不喜欢在我们的安装中包含 Microsoft DLL,除非通过 Microsoft 的可再发行组件。 Microsoft 提供了开发人员和 redist 安装包。

因此,作为最佳实践,我应该在我的安装中包含单个 DLL 还是将它们引用到 WSE 3.0 安装之一(假设他们尚未安装它)?

【问题讨论】:

  • 我必须承认(尤其是对于那个特定的 DLL)我总是将它包含在我的设置中 - 但后来我在企业环境中工作,而不是公开发布。

标签: windows-installer installation redistributable


【解决方案1】:

通常,在可再分发包之外再分发任何 Microsoft DLL 均受到其 EULA 的禁止,因此您可能首先要检查该 DLL 的相应 EULA。

一般来说,我更喜欢 redist 软件包,因为它可以确保它正确“注册”到系统中,即,如果您安装更新版本的 redist,它会得到更新(如 DirectX),或者如果它是旧版本则不会被覆盖(也像 DirectX)。

【讨论】:

    【解决方案2】:

    检查安装程序是否安装了 WSE 3.0,如果没有提醒用户并取消安装,如果安装正常继续。我不会在您的安装包中包含 DLL,因为它可能很快就会过时,而且我不知道 EULA 是否允许。

    【讨论】:

      【解决方案3】:

      我相信 MS EULA 会阻止您重新分发 MS 代码,除非它位于可再分发包中。

      适当的可再发行组件应处理任何其他先决条件,因此无论如何它可能是更好的选择。

      【讨论】:

        【解决方案4】:

        如果您不包含它,您至少应该在您的网站上直接链接到它,或者让您的安装程序打开网络浏览器(甚至自动下载)。或者更好的是,将可再发行组件包含在您的软件包中。

        但是,如果 DLL 不是很大并且您怀疑很少有用户会拥有它,那么为了更好的用户,我会在默认安装程序中预先打包它。但是,对于那些想要更小的安装程序的人来说,您总是可以有一个不包含它的安装程序......很多其他供应商一直都在这样做。

        【讨论】:

          【解决方案5】:

          感谢您的建议/cmets!在与 Windows 安装程序设置搏斗后,我找到了包含 WSE30 redist 并在未安装时弹出一个对话框的最佳方法。

          我知道简单地包含 DLL 并不是最佳实践(并且违反了微软的 EULA),这就是为什么我认为它试图在 redist 之外包含 WSE DLL 很奇怪,尤其是当redist 已在安装程序中注册(它在属性下显示为 pre-req)。

          再次感谢。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-04
            • 1970-01-01
            • 1970-01-01
            • 2013-04-21
            • 2011-04-26
            • 2018-10-04
            • 2011-12-08
            相关资源
            最近更新 更多