Подтвердить что ты не робот

Ссылка на DLL не копируется в мусорный ящик проекта

Проект < Проект < > , а Проект B ссылается на внешний DDL (восстанавливается с помощью NuGet). DLL следует скопировать в папку bin Project A (вместе с DLL проекта B):

DLL References Copied To Bin

В моем случае при запуске Project A я получаю следующее исключение:

Не удалось загрузить файл или сборку 'PostSharp, Version = 3.2.18.0, Культура = нейтральная, PublicKeyToken = b13fd38b8f9c99d7 'или одна из ее зависимостей. Система не может найти указанный файл.

DLL не копируется в контейнер Project A. Все остальные внешние ссылки из Project B копируются с помощью всего лишь штрафа, что меня пугает.

Copy Local установлено значение true для всех задействованных ссылок. Пример:

Copy Local Reference

Как мне это сделать?

Примечание. Использование Visual Studio 2013.

4b9b3361

Ответ 1

Параметры, которые я нашел, были следующими:

  • Добавить ссылку на PostSharp в Project A.
  • Добавить фиктивный код в Project B, чтобы компилятор обнаружил, что ссылка используется.
  • Добавить событие сборки, чтобы скопировать DLL.

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

Я исправил проблему, используя общий выходной каталог. Это кажется рекомендуемым решением многих. Я также испытал гораздо более быстрое время сборки. См. fooobar.com/questions/42549/....

Ответ 2

Когда я столкнулся с этой проблемой, это произошло потому, что я изменил имя проекта, но не изменил имя сборки - он был идентичен имени сборки другого проекта в решении.

Ответ 3

Я добавил некоторый фиктивный (неиспользуемый) код в Project B, ссылаясь на необходимую DLL.

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