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

Визуальная студия копирует dll refrences в папку вывода

Я пытаюсь распространить определенное приложение. Я использую DLL, которая поставляется вместе с этим приложением, чтобы расширить его функциональность. Я использую Visual Studio 2010 Express Edition. Я добавил ссылку на библиотеку dll. В свойствах refrence опция "Копировать локаль" отключена. (Greyed out) почему? Я хочу, чтобы визуальная студия копировала DLL в мою папку выпуска. Если это невозможно сделать, есть ли способ, чтобы связать dll?

4b9b3361

Ответ 1

Ваш комментарий к ответу Hans указывает, что это сборка COM и что вы используете Visual Studio 2010.

Это означает, что ссылка на сборку, вероятно, была добавлена ​​с установкой "Вставить типы прерываний" в значение true. Это приводит к объединению сборки COM в ваш двоичный файл, устраняя необходимость его развертывания в целом. Следующая ссылка содержит более подробное объяснение

Если вы хотите развернуть его, тогда вам нужно будет сделать следующее

  • Нажмите ссылку на вкладке ссылок
  • Нажмите F4, чтобы открыть сетку свойств.
  • Установите "Вставить типы взаимодействия" в False (это приведет к отключению копирования локальных файлов)
  • Установите для параметра "Копировать локальное" значение true

Ответ 2

Это зависит от того, что это за DLL. Если это COM-сервер, то Copy Local отключен, когда вы зарегистрировали PIA для этого COM-сервера. Если это обычная сборка .NET, она будет отключена, когда она будет зарегистрирована в GAC.

Исправить проблему, соответственно, используя regasm/u, чтобы отменить регистрацию PIA или gacutil/u, чтобы удалить ее из GAC. Обратите внимание, что вы не захотите это делать, если эта DLL требует, чтобы его установщик был запущен на целевой машине. Скорее всего. Поговорите с поставщиком компонентов или автором, чтобы узнать, что вам следует делать.