Я пытаюсь распространить определенное приложение. Я использую DLL, которая поставляется вместе с этим приложением, чтобы расширить его функциональность. Я использую Visual Studio 2010 Express Edition. Я добавил ссылку на библиотеку dll. В свойствах refrence опция "Копировать локаль" отключена. (Greyed out) почему? Я хочу, чтобы визуальная студия копировала DLL в мою папку выпуска. Если это невозможно сделать, есть ли способ, чтобы связать dll?
Визуальная студия копирует dll refrences в папку вывода
Ответ 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 требует, чтобы его установщик был запущен на целевой машине. Скорее всего. Поговорите с поставщиком компонентов или автором, чтобы узнать, что вам следует делать.