2

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

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

4

5 回答 5

5

通常,在可再分发包之外再分发任何 Microsoft DLL 都是其 EULA 所禁止的,因此您可能首先要检查该 DLL 的适当 EULA。

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

于 2008-08-20T12:28:10.867 回答
2

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

于 2008-08-20T12:27:34.380 回答
2

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

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

于 2008-08-20T12:28:07.060 回答
0

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

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

于 2008-08-20T12:27:30.557 回答
0

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

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

再次感谢。

于 2008-08-20T13:33:55.610 回答