Windows сервисная сборка включает DLL, на которые нет ссылок - PullRequest
0 голосов
/ 14 февраля 2020

Используя Visual Studio 2017 Я создал службу Windows с использованием VB. net. У меня есть класс обслуживания root и класс установщика проекта. Сервис строит, устанавливает и запускает, как и ожидалось. За исключением следующего: вывод в папку BIN огромен. Перечисленные ссылки следующие:

    System
    System.Configuration
    System.Configuration.Install
    System.Deployment
    System.Net.Http
    System.Runtime.CompilerServices.Unsafe
    System.ServiceProcess
    System.Threading.Tasks.Extensions
    TSLogger (internall DLL that logs to Event log)

Когда я создаю службу, вывод в папку bin включает более 100. NET DLL. На разных этапах разработки, используя менеджер пакетов NuGet, я установил и удалил CsvHelper и Newtonsoft. Json.

Есть идеи, что заставит компилятор включать все эти библиотеки DLL как часть вывода? Или как мне это контролировать?

Я прикрепил скриншот папки bin.

Скриншот папки Bin: bin folder screenshot

1 Ответ

1 голос
/ 18 февраля 2020

Оказывается, это был CsvHelper v15.0.0. Я создал новое решение, не добавил никакого кода, а просто добавил ссылки, и как только я добавил CsvHelper с диспетчером пакетов NuGet, папка bin заполнилась бы всеми этими DLL-библиотеками фреймворка.

ОБНОВЛЕНИЕ

Я подтвердил, что получаю тот же результат от CsvHelper версии 14.0.0; версии 13.0.0 и 12.3.2 не дают этих результатов. Я не тестировал другие версии. Единственное различие, которое я вижу, состоит в том, что последние 2 версии включают ссылку на System.Runtime.CompilerServices.Unsafe - это может быть то, что приносит так много. NET библиотек Framework ??

...