Объясните DLL зависимости зависимому человеку - PullRequest
3 голосов
/ 12 мая 2010

Это следует из предыдущей публикации , которую я высказал по поводу отсутствия чистой тестовой машины для установки программного обеспечения. Я плохо объясняю, как работают зависимости DLL и как некоторые машины могут не иметь нужных библиотек во время установки. Проблема в том, что это рассматривается как дефект процесса сборки. Я пытаюсь убедить высших должностных лиц, что виноват не сам процесс сборки, а процесс установки.

Вот цитата моего босса, касающаяся работы субподрядчиков и нашей работы, чтобы представить ее в перспективе:

Я не программист. Я вижу только то, что когда они что-то нам передают, это просто работает, но когда мы что-то передаем клиенту, возникают всевозможные проблемы. Должно быть что-то не так с тем, как вы строите код.

[edit] Когда приходят приложения субподрядчиков, они могут быть скопированы прямо на наши машины для разработки, потому что наши машины содержат все нужные библиотеки времени выполнения Microsoft. Однако на клиентских компьютерах не все они содержат эти зависимости. [/ Edit] Очень легко увидеть, как умный (умно-умный) человек может прийти к неверному выводу. Итак, как бы вы объяснили всю проблему с зависимостями DLL?

Ответы [ 2 ]

2 голосов
/ 12 мая 2010

Он прав, что вы делаете что-то не так, потому что, если они не являются стандартными системными DLL, вы должны упаковать эти DLL в программу, возможно, используя установщик, чтобы получить необходимые предварительные условия в системе.Если вам не разрешено делать это, то вам нужно делать что-то по-другому, например, использовать статическое связывание (где необходимый код включен в исполняемый файл).

Тем не менее, вот аналогия, которую вы можете использовать дляобъясните, в чем проблема.

Программа - это, по сути, работник, который знает, как выполнить одну конкретную задачу (это может быть очень сложная задача с большим количеством подзадач или очень простая задача, но она все еще является одной задачей).в конце).Для выполнения этих задач он должен использовать некоторый набор инструментов - библиотеки DLL.

Различные задачи требуют разных инструментов - так же, как вам нужна пила, а не молоток, если вы хотите разрезать доскупополам вам нужны разные библиотеки DLL для выполнения разных задач.

Если нужные инструменты (библиотеки DLL) недоступны, то рабочий (программа) не может выполнять свою работу, потому что его задача зависит на этих инструментах.Если он не сможет выполнить свою работу, он скажет вам: «У меня нет этого инструмента, и мне нужно, чтобы он делал то, что должен».

Вот что происходит с вашими клиентами: вы дали им рабочий (программу), но вы не дали им инструменты (DLL), а рабочий не принес их (статическое связывание).

2 голосов
/ 12 мая 2010

вы могли бы использовать аналогию, которая могла бы быть ему более знакомой. Что-то вроде переезда в новый офис.

Допустим, вы являетесь подрядчиком и решаете, что собираетесь переехать в новый офис. вы составляете список всех вещей, которые, по вашему мнению, вам понадобятся в вашем новом офисе, интернете, телефоне, факсе, ксероксе, стрессовом зале и т. д. Затем вы решаете переехать в общий офис, в котором уже есть много таких вещей, и многое другое. Таким образом, вы переезжаете. Вы берете с собой вещи, которых у него еще нет, такие как стресс-мяч, дерево бонсай и т. Д.

что вы не понимаете, так это то, что помимо всего прочего в вашем списке есть некоторые другие вещи, которые вы начинаете использовать в общем офисе, такие как кофемашина, дырокол и т.д., вы делаете это довольно бездумно, поэтому вы не добавляйте вещи в список «предметов первой необходимости».

тогда вы поссорились с парнями в общем офисе, чтобы решить, какого черта, вы пойдете один и получите совершенно новый, пустой офис. Итак, вы получаете список всего, что вам нужно, звоните и начинаете заказывать. Отлично. За исключением того, что когда вы переезжаете в новый свежий офис, вы понимаете, что в нем нет кофемашины, дырокола и т. Д.

Таким образом, пока вы все еще в состоянии, как и прежде, вы не можете выполнять свою работу полностью, поскольку некоторые из необходимых вам зависимостей недоступны.

Таким образом, в этом «вы» - это написанное вами программное обеспечение, офис - это машина, на которую вы устанавливаете, зависимости - это то, от чего зависит ваше программное обеспечение, и список того, что вам нужно, в процессе сборки установки.

Может быть ... * * 1013

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...