.dll отсутствуют после решения перестроения/чистой сборки

У меня есть 3 проекта в моем решении и куча сторонних или корпоративных dll. Каждый раз, когда я перестраиваю свой проект или чистое решение, многие из этих dll удаляются, поэтому отсутствуют. Довольно раздражает снова и снова ссылаться на эти dll-файлы после перестройки. Может кто-нибудь объяснить, как этого избежать? Заранее спасибо.


person Shukhrat Raimov    schedule 24.09.2014    source источник
comment
Вы ссылались на них в своем проекте, но они все еще отсутствуют? или вы просто скопировали файлы DLL в выходной каталог?   -  person Habib    schedule 24.09.2014
comment
Также в меню свойств (в дизайнере) для ссылок есть ли у них локальная копия (это может быть причиной того, что они не находятся в папке, если это не установлено)   -  person Thomas    schedule 24.09.2014
comment
@Habib Я создал папку bin в корневой папке и скопировал туда все DLL, а затем сослался на них из этой папки с помощью ссылки-добавить ссылку.   -  person Shukhrat Raimov    schedule 24.09.2014
comment
@ShukhratRaimov, в корневой папке вашего проекта уже должна быть папка bin   -  person Habib    schedule 24.09.2014
comment
@ Хабиб, извините, это было раньше, но в нем не было моих dll-файлов. Также у каждого моего проекта есть папка bin, но я добавляю ссылки dll из своей корневой корзины. Я очень смущен, почему так много папок bin, как создаются эти ссылки и почему они удаляются после каждой перестройки.   -  person Shukhrat Raimov    schedule 24.09.2014
comment
@Habib, в некоторых папках bin есть отладка / выпуск, а в других - просто файлы dll.   -  person Shukhrat Raimov    schedule 24.09.2014
comment
Чистое решение удалит все двоичные файлы в папке bin. Вам нужно ссылаться на него из фактического местоположения, каждая сборка будет неизменно копировать их из в корзину, если это целевая двоичная папка.   -  person Mrinal Kamboj    schedule 24.09.2014


Ответы (2)


Папка bin — это просто двоичный вывод сборки, поэтому при очистке решения все сборки в папке bin удаляются. Вы должны ссылаться на сборки из какого-либо другого места. Одно из предложений состоит в том, чтобы создать папку Shared Resources в вашем проекте, скопировать сборки в эту папку, а затем ссылаться на них из этой папки. Таким образом, они не будут удалены из bin при очистке/перестроении, и Visual Studio скопирует их туда по мере необходимости.

  1. Щелкните правой кнопкой мыши папку References в вашем проекте и выберите Add Reference....
  2. Используйте функцию просмотра, чтобы найти сборки, на которые вы хотите сослаться (не беспокойтесь о ручном копировании их в/из папки bin)
  3. После добавления ссылки щелкните правой кнопкой мыши ссылку в списке ссылок и выберите Properties.
  4. Убедитесь, что для свойства Copy Local установлено значение True.

Это обеспечит копирование сборки в вашу папку bin при каждой сборке.

person Troy Carlson    schedule 24.09.2014
comment
Спасибо за ответ. Так что на самом деле, когда я очищаю/перестраиваю свой подпроект, папка bin внутри этого подпроекта будет очищена. Если я перестрою все решение, будет ли папка bin в корне удалена или каждая папка bin в подпроектах будет очищена? - person Shukhrat Raimov; 24.09.2014
comment
Когда вы очищаете проект, папка bin для этого проекта очищается. На уровне решения нет папки bin, поэтому при очистке решения папка bin будет очищена для всех проектов в этом решении. Я думаю, что в Visual Studio есть некоторые специальные правила, согласно которым файлы/папки удаляются при выполнении очистки, поэтому впоследствии могут остаться файлы. Но важно то, что папка bin является результатом сборки, и вы не хотите вручную копировать/ссылаться на свои сборки оттуда... - person Troy Carlson; 24.09.2014

В моем случае проблема заключается в версии .net framework. Мне пришлось понизить его версию до 4.5, и тогда проекты правильно собрались и можно было ссылаться в других проектах.

person Jyothi.T    schedule 22.04.2021