Visual Studio удаляет неиспользуемые зависимости Nuget

#visual-studio #nuget-package

#visual-studio #nuget-пакет

Вопрос:

некоторое время я борюсь с удалением неиспользуемых зависимостей из выходных папок bin. Я, например, пишу небольшой.Программа NET Wpf, которая получает свои данные с веб-сервера. Поэтому я установил System.Net.Http NugetPackage для выполнения своих запросов Get / Post. Информация о пакете хранится в файле .csproj. Когда я компилирую проект, в выходную папку добавляется множество зависимостей

  • Система.Безопасность.Криптография.Algorithms.dll

  • Система.Безопасность.Криптография.Encoding.dll

  • Система.Безопасность.Криптография.Primitives.dll

  • Система.Безопасность.Cryptography.X509Certificates.dll

Ни одна из этих зависимостей явно не используется в моей программе, что означает, что когда я удаляю их из папки вывода и запускаю приложение, все работает так, как ожидалось. Я понимаю, что эти библиотеки DLL должны быть в пакете, но как я могу их игнорировать. Есть ли способ игнорировать зависимости в пакете nuget?

Ответ №1:

Один из способов добиться этого — установить для ссылки на Dll значение copy local равным false.

Я не работал над проектами WPF, но я считаю, что это все равно применимо.

Для этого разверните узел ссылок в проекте, выберите DLL, а затем в окне свойств установите для свойства «Копировать локально» значение False.

Это должно предотвратить попадание библиотеки Dll в корзину, а также ее включение при публикации.

Одно предупреждение, хотя приложение может работать сейчас, но это создает потенциальную ловушку для вас или других разработчиков в будущем. Если для изменений кода в будущем потребуется одна из этих библиотек DLL, ваше приложение не будет таким счастливым, и тогда вам придется не забыть вернуть значение Copy Local обратно в True.