У меня есть .NET Windows serivce, защищенный {smartassembly} , который работает нормально, за исключением того, что я не могу установить защищенную версию для установки. Когда я проводил тестирование, сервис уже был установлен, а затем скопировал защищенную версию поверх оригинала.
На веб-сайте {smartassembly} есть некоторые инструкции, касающиеся служб Windows ( Как защитить службы Windows? ). Я последовал предложению номер один, используя статью CodeProject ( Службы Windows могут установить себя ), чтобы встроить установщик в службу. Самостоятельная установка работает нормально, пока служба не будет защищена.
В файле журнала установки отображается следующее сообщение об ошибке:
Исключительная ситуация при попытке найти установщики в сборке C: \ path-to-service \ service.exe.
System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации.
Я вернулся к тому, чтобы попытаться удалить любые варианты защиты, которые говорили, что они могут вызвать проблемы с отражением. Я все еще получил ту же ошибку.
Затем я попытался отключить все варианты защиты. Все та же ошибка.
Я отправил электронное письмо в службу поддержки {smartassembly} , но еще не получил ответ. Прошло всего 24 часа, но я подумал, что кто-то из SO мог столкнуться с этой проблемой раньше.
Есть идеи?
Редактировать # 1
Я знаю, что могу написать еще один exe-файл, который использует Windows API для установки службы, но я бы хотел, чтобы встроенная установка работала, если это возможно.