Пожалуйста, объясните это любому. Этот вопрос помогает понять общие вещи
Вопрос:
В чем разница, когда вы добавляете
DLL
ссылка из одного проекта в другой с помощью опции «Просмотр» и «Добавить»DLL
ссылка из проекта решения на другой проект и копирование-вставка из одного проекта в другой проект?
Я нашел ответ на Google
Ответ:
Добавление ссылки на проект добавляет библиотеку локального проекта в проект, который ссылается на него, и каждый раз, когда решение компилируется, обновленная DLL для этого проекта копируется в другой проект. Поэтому, когда вы проходите процесс сборки, если у вас есть 5 проектов, каждый перестраивает свою DLL и копирует эту DLL в свои ссылки.
Но:
Я не знаю, каков этот процесс и какая разница, когда мы копируем и вставляем один проект в другой?
Когда вы копируете вставку из одного проекта в другой, зависимый проект добавляет ссылку на файл, который вы вставили, в каталог решения проекта.
Когда вы делаете копирование, вставьте dll одного проекта в каталог другого проекта, а затем добавьте его ссылку, перейдя в тот каталог, куда вы вставили dll. Затем VS только добавляет свою ссылку и копирует эту dll в свою папку bin и показывает вам (позволяет вам) все методы и свойства, которые она содержит.
Если вы вносите какие-либо изменения в исходное проектное решение, такие как добавление или изменение методов, то обновленное dll этого проекта недоступно в зависимом проектном решении.
Так что VS по-прежнему указывает на старый файл DLL только из-за ссылки, которую вы добавили. Поэтому, когда бы вы ни вносили какие-либо изменения в исходное проектное решение, вы должны каждый раз добавлять ссылку на обновленный dll в зависимое решение.
Во втором случае: когда вы добавляете ссылку на ваш исходный проект в решение вашего зависимого проекта, VS всегда переносит самую последнюю обновленную dll из вашего исходного проекта в ваш зависимый проект. Таким образом, вам не нужно добавлять ссылки каждый раз, когда вы компилируете код или отлаживаете.
Когда вы просто ссылаетесь на DLL, просматривая ее, VS копирует ее в выходной каталог зависимого проекта.
Предположим впоследствии, что DLL обновлена - нет никакой гарантии, что VS повторно заберет эту обновленную DLL и скопирует ее снова в выходной каталог зависимого проекта — это означает, что даже после того, как вы исправили некоторые ошибки в другом проекте, эти ошибки сохраняться в зависимом проекте (потому что он все еще использует предыдущую версию этой DLL).
Когда вы добавляете ссылку на другой проект в решении, VS всегда будет брать самую последнюю и обновленную DLL, выведенную из этого проекта.