Служба Windows C# не будет установлена, если она включает (встроенную) Entity Framework

Я пытался понять, почему моя служба C# Windows не будет установлена, и, похоже, это вызвано включением Entity Framework.

Чтобы проверить это, я создал новый проект с использованием шаблона службы Windows в Visual Studio и просто позволил мастеру сделать свое дело.

Развернул на моем тестовом сервере, установил и все заработало как положено... Затем я удалил.

Затем я добавил (DB First) модель Entity Framework в проект, опять же что-то очень простое и развернутое на сервере.

На этот раз при установке получаю следующее..

Утилита установки Microsoft (R) .NET Framework Версия 4.0.30319.17929 Авторские права (C) Корпорация Майкрософт. Все права защищены.

Запуск транзакционной установки.

Начало фазы установки установки. См. Содержимое файла журнала для выполнения сборки D:\SandBox\TestService\TestService.exe. Файл находится по адресу D:\SandBox\TestService\TestService.InstallLog. Установка сборки "D:\SandBox\TestService\TestService.exe". Затрагиваемые параметры:
logtoconsole = logfile = D: \ SandBox \ TestService \ TestService.InstallLog assemblypath = D:\SandBox\TestService\TestService.exe Исключительная ситуация при попытке найти установщики в сборке D:\SandBox\TestService\TestService.exe. System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации. Прерывание установки для D:\SandBox\TestService\TestService.exe.

Возникла исключительная ситуация на этапе установки. System.InvalidOperationException: невозможно получить типы установщика в сборке D:\SandBox\TestService\TestService.exe. Внутреннее исключение System.Reflection.ReflectionTypeLoadException вызвало следующее сообщение об ошибке: Невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации.

Фаза отката установки начинается. См. Содержимое файла журнала для выполнения сборки D:\SandBox\TestService\TestService.exe. Файл находится по адресу D:\SandBox\TestService\TestService.InstallLog. Откат сборки "D:\SandBox\TestService\TestService.exe". Затрагиваемые параметры:
logtoconsole = logfile = D: \ SandBox \ TestService \ TestService.InstallLog assemblypath = D:\SandBox\TestService\TestService.exe Исключительная ситуация при попытке найти установщики в сборке D:\SandBox\TestService\TestService.exe. System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации. Прерывание установки для D:\SandBox\TestService\TestService.exe. Возникла исключительная ситуация на этапе отката установщика System.Configuration.Install.AssemblyInstaller. System.InvalidOperationException: невозможно получить типы установщика в сборке D:\SandBox\TestService\TestService.exe. Внутреннее исключение System.Reflection.ReflectionTypeLoadException вызвало следующее сообщение об ошибке: Невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации. Исключительная ситуация возникла на этапе отката установки. Это исключение будет проигнорировано, и откат будет продолжен. Однако после завершения отката аппарат может не полностью вернуться в исходное состояние.

Фаза отката успешно завершена.

Транзакция завершена. Установка не удалась, и откат был выполнен.

Когда служба была развернута, я скопировал EntityFramework.dll и EntityFramework.SqlServer.dll с файлами exe и config, и все они находятся в одной папке.

Итак, на что явно жалуется InstallUtil. Как я могу узнать

К вашему сведению: "Работает на моей машине" в соответствии с любой проблемой разработчика

РЕДАКТИРОВАТЬ:

Ссылки на этот вопрос SO Сообщение об ошибке "Невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации.' когда что-то идет не так во время RUNTIME... Моя конкретная проблема во время установки

1 ответ

Ну, мне удалось решить / обойти проблему.

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

Другие вопросы по тегам