Палец вверх 4
Перевод
Перевод

Как мне определить, какие ссылки необходимо «скопировать локально»?

Много похожих постов, но это не дубликат, я считаю. Когда я добавляю ссылки в visual studio, некоторые dll копируются локально, а некоторые нет.

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

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

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

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

Благодарю.

.net visual-studio dll-reference copy-local
задан nawfal 29 февр. 2012 г., 3:47:29
источник

2 ответа

Решение 1
Перевод
Перевод

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

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

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

ответ дан Hans Passant 29 февр. 2012 г., 5:20:49
источник
Палец вверх 0
Перевод
Перевод

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

ответ дан Christopher Painter 29 февр. 2012 г., 4:02:07
источник