2012-02-28 3 views
4

Многие подобные сообщения, но это не дубликат, я верю. Когда я добавляю ссылки в visual studio, некоторые DLL-файлы копируются локально, а некоторые нет.Как определить, какие ссылки должны быть скопированы локально?

Я понимаю, что внешние DLL, которые я получаю из других источников, должны иметь локальную ссылку, но я полагаю, что те, которые я выбираю из длинного списка ссылок Visual Studio (.NET и COM), не нужно копировать локально. Я не.

Теперь я заметил, что при выборе Shell32 из COM dll скопирован локально. По умолчанию для параметра «Копировать локальное» установлено значение «Истина». Поэтому я предположил, что .NET - это те, которые не нуждаются в локальной ссылке, в то время как COM должен иметь. Но когда я ссылался на объекты Office Interop (COM), я вижу, что они не скопированы локально.

  1. Как это некоторые копируются локально, а некоторые нет. (пытается узнать что-то приятное)

  2. Также как мне нужно установить свойство «Копировать локальное» для ссылок вообще? Рекомендуется ли по умолчанию использовать Visual Studio?

Спасибо.

ответ

1

Шансы, что VS ошибочно по умолчанию, довольно малы. Ваша машина-разработчик (обычно) не отличается от вашей машины пользователя, что важно для вашего ПК. У вас будет установлен .NET так же, как пользователь, поэтому сборки сборок находятся в вашем GAC, а также пользователь не будет скопирован локально. Любая сторонняя сборка .NET будет скопирована локально, включая вашу собственную.

Единственный угловой корпус - COM pias, Primary Interop Asssemblies. Вы, как правило, некоторые из них установлены на вашем компьютере-разработчике, pias Office и Internet Explorer довольно распространены. Они не будут доступны на машине пользователя, если кто-то не позаботится об их установке. Это не часто, что вы на самом деле нужны pia, они требуются только тогда, когда ваша собственная сборка выдает тип из них. Просто переверните Копировать Локальный в Истинный. Это, в остальном, быстро исчезающая проблема, проекты, построенные VS2010, поддерживают функцию Embed Interop Types, иначе известную как «no-pia».

И последнее, но не менее важное: вы всегда должны протестировать своего установщика. В маловероятном случае, когда вы что-то пропустили, этот тест быстро очистит его.

+0

Точная вещь, которую я искал. благодаря – nawfal

0

Я использую его для управления тем, что публикуется в сборке. Если ссылка - это то, что нужно развернуть в частном порядке, я установил ее в true. В противном случае я установил значение false.