![只需将必要的 dll 文件复制到服务器而不是安装依赖项就可以了吗?](https://linux22.com/image/630149/%E5%8F%AA%E9%9C%80%E5%B0%86%E5%BF%85%E8%A6%81%E7%9A%84%20dll%20%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%80%8C%E4%B8%8D%E6%98%AF%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E9%A1%B9%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%E5%90%97%EF%BC%9F.png)
我在服务器 (win2008/iis7.5) 上部署了 ASP NET MVC 3 应用程序。不知何故,我决定不安装 MVC 3 包和 devexpress(应用程序必需)。相反,我刚刚将 mvc 和 devexpress 的 dll 从我的开发人员机器复制到已部署应用程序的 bin 文件夹中。一切正常。虽然将来维护可能会出现一些复杂情况,但我想知道这种方法是否可接受,并且它是否会影响性能?
答案1
抱歉,我不同意我之前发帖人的观点。Web 应用程序需要能够安装在各种环境中,这可以是您自己的服务器,也可以是网络托管商。
例如,在 Webhoster 上,您无权正确“安装”这些工具,因此将这些程序集部署到 bin 文件夹中是完全可以的。
请在此处查找有关 MVC3 和 DevExpress 的一些具体信息:
来自 SO 的 MVC 部署
从 DX 进行 DevExpress 部署
至于 DevExpress,它甚至违反了他们的 EULA:
当您部署使用 DevExpress 提供的 Web 控件的 Web 项目时,您应该将实现所用功能的相应程序集文件复制到目标计算机(服务器)上。请注意,您不能将我们的安装用于此目的,因为它包含根据我们的 EULA 条款无法分发的设计库。因此,您需要手动将必要的程序集文件部署到目标服务器上。
答案2
正确安装!
正是因为人们做这样的事情,我才有几台老旧的服务器,它们无法重建,无法迁移到另一台服务器,我只能祈祷它永远不要坏掉。如果你正确安装它,我可以在添加/删除程序中查看并看到“哦,它需要安装 X 和 Y”。如果你随意复制 DLL 文件,我就无法做到这一点。
它还会破坏安全更新,因为 Windows 不知道安装了什么。
基本上,这样做会让服务器的维护变成一场噩梦。使用正确的安装文件,并为您的程序创建安装程序。
答案3
作为必须处理维护和生命周期问题的系统管理员,我会说不,这是不可接受的,因为正如您所说,可能会出现复杂情况......
Windows 开发工具有打包工具,不是吗?我不明白你为什么不使用它们。
至于性能,您必须自己测试。