У меня есть программа на C#, которая была создана как служба Windows. Я проверил эту последнюю неделю, и все получилось нормально, но сегодня я получаю сообщение об ошибке.Служба Windows: ожидается, что модуль будет содержать манифест сборки
Когда я пытаюсь установить с помощью Installutil.exe, я получаю ошибку:
Could not load file or assembly [file name] or one of its dependencies. The module was expected to contain an assembly manifest.
Перестройка проект не имел никакого эффекта. Я также заметил в диспетчере задач, что служба по-прежнему указана и запущена. На случай, если это может помешать установке, я попытался удалить с помощью installutil, но снова получил то же сообщение об ошибке.
Я видел много других вопросов, связанных с этой ошибкой, но большинство из них либо не имеют ответа, либо очень специфический ответ, связанный с их уникальной ситуацией. У кого-нибудь это случилось, и как вы это исправили? Любые идеи приветствуются.
Update:
я успешно удалил службу, используя «СБН удалить» команду через командную строку, но я все еще получаю ту же ошибку с InstallUtil при попытке переустановить.
Update 2:
Просто ради попробовать что-то, я удалил папку бен из проекта, вновь решение, и сделал чистую и строить. Он по-прежнему не будет устанавливать, но теперь у меня есть другое сообщение:
This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Вопрос:
Что бы вызвать там быть несоответствие времени работы? Насколько я знаю, я использовал .NET Framework 4.5 и не отклонялся. Есть ли ценность, которую я должен искать/изменять, чтобы исправить это?
Update 3:
Вот что я пытался до сих пор:
Один ответ предложил версию InstallUtil быть использованы вопросы. Я запускал v2.0.50727, но есть и v4.0.30319, которые я не думал пробовать. Запуск это привело:
An attempt was made to load a program with an incorrect format...
Я готов работать на эту ошибку вместо того, чтобы, если было бы решить эту проблему. Тем не менее, я вынужден думать, что это не проблема, так как я успешно запускал v2.0.etc незадолго до появления первой ошибки.
Внутри App.config есть строка «Поддерживаемая версия Runtime = v4.0». Я переключил это на 4.5, но это не имело никакого эффекта.
Я попытался переключения целевой базы (в свойствах проекта) до 4.0, но это приводит к ошибке с:
Some NuGet packages were installed using a target framework different from the current target framework, etc...
Это имел в виду EntityFramework, и я предпочел бы не начать баловаться с NuGet снова, если это единственный способ (последний раз это был кошмар).
Я попытался установить службу на целевом сервере (машина, в которую в конечном итоге будет развернута), и получит ту же ошибку. Это заставляет меня думать, что это проблема с проектом/решением, а не с ПК.
32/64-битные отличия? – Lloyd
@Lloyd: Это 64-разрядная программа на 64-битной системе. Кроме того, это тот же самый механизм, над которым он работал. –
Почему вы запускаете файл installutil.exe при запуске службы? –