Visual Studio 2010 «Добавить ссылку» копирует dll в каталог bin?

Я использую w7, 64bit и vs.net 2010.

Я добавляю ссылку на компонент, который находится в моем диалоговом окне «добавить ссылки». Компонент является сторонней dll.

Исторически сложилось так, что на 32-битной версии w7 он добавлял строку в мой web.config (в теге сборок), ссылаясь на эту dll, и не копировал dll в каталог bin.

Однако на 64-битной версии w7 dll копируется в каталог bin, а файл web.config вообще не обновляется.

Почему dll копируется в каталог bin? спасибо

Решение: (обновлено) Эти сообщения дали мне нужные подсказки.

VS.NET скопирует dll в каталог bin, если ваша система не может найти dll в GAC. Сборки в GAC (зарегистрированные на вашей рабочей станции), которые можно найти в каталоге C: \ Windows \ Assembly.

Компоненты, перечисленные в vs.net 'диалоговое окно добавления ссылок', могут находиться или не находиться в gac. Поскольку компонент указан в диалоговом окне «Добавить ссылки», это не означает, что он зарегистрирован на вашей локальной рабочей станции. Я перешел в каталог компонентов и перетащил нужные DLL в каталог C: \ Windows \ Assembly. Я закрыл и снова открыл vs.net, просмотрел тот же файл (ы) и щелкнул добавить ссылку.

** Это добавило ссылку на сборку в мою сеть. config (и он также не копировал dll в каталог bin моего веб-сайта) ****

7
задан David 23 August 2010 в 17:29
поделиться

3 ответа

Он получает копии в каталог bin, чтобы исполняемый файл мог их найти. В противном случае он не найдет его, если dll не установлена ​​в GAC.

6
ответ дан 6 December 2019 в 09:57
поделиться

В ссылке есть свойство Копировать локальное (в окне «Свойства»), которое определяет, следует ли копировать сборку в выходной каталог.

Что касается того, почему это могло не иметь значения для других ссылок, MSDN сообщает:

Если вы развертываете / копируете приложение, которое содержит ссылку на настраиваемый компонент, зарегистрированный в GAC, этот компонент не будет развернут / копируется с приложением, независимо от настройки Копировать локально .

12
ответ дан 6 December 2019 в 09:57
поделиться

В дополнение к предыдущим ответам: я думаю, что Visual Studio определяет, установлено ли для свойства Copy Local значение true, основываясь на том факте, что DLL отсутствует в GAC вашего компьютера.
Это не позволяет VS копировать собственные библиотеки DLL .net, поэтому по умолчанию он должен копировать только "пользовательские" библиотеки DLL.

1
ответ дан 6 December 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: