Почему в выводе bin так много DLL для простой программы - PullRequest
1 голос
/ 24 апреля 2020

У меня есть простая программа WPF, которая вычисляет сумму 2 чисел.
Когда я создаю приложение, оно создает кучу DLL в папке bin. Я сделал тест, где я просто взял .exe-файл и один .dll-файл и скопировал в другое место и попытался запустить, и он работал нормально.

Даже консольное приложение имеет кучу DLL в выводе bin. Я просто ожидал, что одна DLL-библиотека ClassLibrary1 и файл .exe.

Почему все библиотеки DLL?

enter image description here

enter image description here

enter image description here

1 Ответ

3 голосов
/ 24 апреля 2020

Ваш ClassLibrary1 проект нацелен. NET Стандартный, что означает, что у него есть эти дополнительные библиотеки DLL на случай, если он должен работать на других. NET Стандартно-совместимых платформах помимо. NET Каркас для Windows, который не требует эти библиотеки / пакеты не включены по умолчанию. Вы заметите, что эти дополнительные DLL обычно соответствуют другим пакетам NuGet, на которые неявно или явно ссылается ваш ClassLibrary1 проект.

По умолчанию, когда проект X ссылается на другой проект Y, сборка X будет выдвинуть все зависимости Y, даже если они не нужны на целевой платформе X. NET. Есть способы предотвратить это, но это другой вопрос.

Кстати, в то время как. NET Framework 4.6.1 якобы совместим с. NET Standard 2.0, есть много проблем, с которыми вы столкнетесь с другими пакетами NuGet и сборкой / привязкой модуля или загрузкой - так что, вообще говоря, лучше всегда ориентироваться на последнюю версию. NET Версия Framework (4.8 или хотя бы 4.7.2) при использовании. NET Стандарт 2.0.

Не думаю, что есть какая-либо причина для таргетинга. NET 4.6.1 сегодня: ему уже 4 года, и любой компьютер способен работать. NET 4.6.1 (то есть Windows 7 SP1 или новее ) также может работать. NET Framework 4.8 (за исключением Windows версий, в настоящее время не поддерживаемых Microsoft, таких как Windows Vista и Windows 8.0, но Windows 8.1 в порядке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...