1
2
你可以用一个他可能更熟悉的类比。比如搬进一个新办公室。 假设你是一个承包商,你决定搬进一个新办公室。你列出了你认为你在新办公室、互联网、电话、传真、复印机、压力球等方面需要的所有东西,然后你决定搬到一个共享的办公室,那里已经有很多这样的东西,还有更多。所以你搬进来。你随身带着它还没有的东西,比如压力球、盆景树等等。 你不知道的是,除了你清单上的所有东西之外,还有一些你开始在共享办公室使用的其他东西,比如咖啡机、打孔器等。你这样做是很不小心的,这样你就不会把这些东西加到你的“必需品”清单上。 然后,你和办公室里的一些人闹翻了,所以你决定,到底怎么回事,你一个人去,找一个全新的,空荡荡的办公室。所以你拿出你所需要的所有东西的清单,打个电话开始订购。伟大的。除了当你搬进新办公室时,你意识到没有咖啡机、打孔器等。 所以,虽然你仍然像以前一样有能力,但你不能完全完成你的工作,因为你需要的一些依赖性是不可用的。 所以在这个“你”是你写的软件,办公室是你安装的机器,依赖关系是你的软件依赖的东西,以及你需要它的列表,安装构建过程。 也许吧。。。 |
2
2
他是对的,你做了一些错误的事情,因为如果他们不是标准的系统DLL,你应该用程序打包这些DLL,可能使用安装程序来获得必要的系统先决条件。如果不允许这样做,那么您需要做不同的事情,比如使用静态链接(在可执行文件中包含必要的代码)。 然而,这里有一个类比,你可以用它来解释问题是什么。 程序本质上是一个知道如何完成一个特定任务的工人(它可以是一个非常复杂的任务,包含许多子任务或非常简单的任务,但最后它仍然只是一个任务)。为了完成这些任务,他必须使用一些工具-DLL。 不同的任务需要不同的工具-就像你需要锯子,而不是锤子一样,如果你想把木板切成两半,你需要不同的DLL来完成不同的任务。 如果没有合适的工具(DLL),那么工人(程序)就不能完成他的工作,因为他的任务 取决于 在那些工具上。如果他不能完成他的工作,他会告诉你“我没有这个工具,我需要它来做我应该做的。” 这就是你的客户所发生的事情:你给他们工人(程序),但你没有给他们工具(DLL),工人没有给他们(静态链接)。 |