我正在开发一个想要包含Microsoft.Web.Services3(WSE 3.0)DLL 的设置。但是,我通常不喜欢在我们的安装中包含Microsoft DLL,除非通过Microsoft的可再发行组件。 Microsoft提供了开发人员和redist安装包。
因此,作为最佳实践,我应该在我的安装中包含单个DLL,还是将它们引用到WSE 3.0安装之一(假设它们尚未安装)?
答案 0 :(得分:5)
通常,EULA禁止在可再发行软件包之外重新分发任何Microsoft DLL,因此您可能首先要检查该DLL的相应EULA。
一般来说,我更喜欢redist包,因为这样可以确保它正确地“注册”到系统中,即如果你安装了更新版本的redist它会更新(如DirectX)或者如果它是旧版本则不会被覆盖(也喜欢DirectX)。
答案 1 :(得分:2)
检查安装程序是否安装了WSE 3.0,如果没有警告该人并取消安装,如果它正常继续。我不会在您的安装程序包中包含DLL,因为它可以很快地过时,我不知道EULA是否会允许它。
答案 2 :(得分:2)
我相信MS EULA阻止您重新分发MS代码,除非它在可再发行的软件包中。
适当的可再发行组件应该处理任何其他先决条件,因此它可能是更好的选择。
答案 3 :(得分:0)
如果您不包含它,您至少应该直接在您的网站上链接它,或让您的安装程序打开Web浏览器(甚至自动下载)。或者更好的是,在软件包中包含可再发行组件。
但是,如果DLL不是很大并且您怀疑很少有用户会拥有它,为了更好的用户,我会在默认安装程序中预先打包它。但是,对于那些需要较小安装程序的人来说,你总是可以拥有一个不包含它的安装程序......许多其他供应商一直这样做。
答案 4 :(得分:0)
感谢您的建议/意见!在与Windows安装程序设置进行摔跤后,我找到了包含WSE30 redist的最佳方法,如果没有安装,则会弹出一个对话框。
我知道它不是最佳实践(并且反对Microsoft提到的EULA)只是包含DLL,这就是为什么我认为它试图将WSE DLL包含在redist之外的原因很奇怪,特别是当redist已在安装程序中注册(它显示为属性下的pre-req)。
再次感谢。