servicio instalar instalador crear c# .net windows-services failed-installation

instalar - crear instalador de servicio windows c#



¿Por qué no puedo instalar mi servicio(tiempo de ejecución más reciente que el tiempo de ejecución cargado)? (9)

¡Nadie se acercó a conseguir este!

Esto es lo que tenía que hacer:

  1. Haga clic derecho en el proyecto de servicio en Visual Studio, vaya a "Propiedades"
  2. Establezca "Objeto de inicio" en el nombre del servicio (se ha establecido en el valor "(No establecido)").
  3. Salvar.
  4. Construir
  5. Intenta instalar de nuevo.
  6. ¡Funciona! ¡Hurra! ¡Todos podemos ir a casa!

Enlace al artículo del proyecto de código que ayudó:

Así que construí un servicio en C # y estoy tratando de usar el siguiente comando para instalarlo:

C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/installutil.exe MyService.exe >> installLog.txt

Fracasa. Cuando miro el installLog.txt, obtengo esto:

Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053 Copyright (c) Microsoft Corporation. All rights reserved. Exception occurred while initializing the installation: System.BadImageFormatException: Could not load file or assembly ''file:///C:/MyService.exe'' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded..

El mismo enfoque funciona bien para instalar un ensamblaje diferente. Siento que podría ser porque el que falla fue escrito para .NET 4.0, y el que funciona está en 3.5.

¿Alguien tiene alguna experiencia con este problema?


¿Ha intentado simplemente escribir MyService.exe /install en una ventana del símbolo del sistema en el directorio que contiene su servicio de Windows? Eso me ha funcionado en el pasado. También puede desinstalar un servicio de Windows usando MyService.exe /uninstall .


Creo que usted proporciona la respuesta en su pregunta:

"Este ensamblaje está construido por un tiempo de ejecución más nuevo que el tiempo de ejecución cargado actualmente y no se puede cargar .."

Por lo tanto, es posible que haya compilado el tiempo de ejecución con funciones más nuevas (que se encuentran en los Frameworks más nuevos) pero la computadora en la que lo está registrando está ejecutando una versión inferior.

P.ej. compile para .NET 3.5 pero instale el servicio posteriormente en .NET 2.0 no tendría sentido.

Dado que puede instalar servicios en la máquina de destino, supongo que ya es administrador. Así que simplemente actualice el framework .NET en esa máquina de servicio.


Está utilizando el installutil.exe incorrecto si su aplicación está construida contra .Net 4.0. Utilice el installutil.exe en la carpeta 4.0.

C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / installutil.exe



Para mí, simplemente hice clic derecho en el exe que estaba tratando de instalar y hice clic en "Desbloquear"


Si compilas en la máquina x64, asegúrate de ingresar a Configuration Mgr y cambiar la compilación a x64. Por supuesto, querrá verificar para asegurarse de que está utilizando la versión correcta de InstallUtil.exe. g''luck


Si probó todo lo anterior y aún ve el mismo error, compruebe si tiene una aplicación de 32 bits o alguna DLL de 32 bits y su servidor es un servidor de 64 bits.


Yo tuve el mismo problema. Inicialmente, mi proyecto estaba en una ruta muy larga en D: / dentro de la carpeta de depuración de mi proyecto. El problema se resolvió cuando moví el archivo de servicio .exe a otra ubicación con una ruta más corta y comencé con "C: /".

También utilizo este archivo por lotes para instalar mis servicios.

@ECHO OFF REM Directory for .NET 4. Check for other version directories. set DOTNETFX2=%SystemRoot%/Microsoft.NET/Framework/v4.0.30319 set PATH=%PATH%;%DOTNETFX2% echo Installing MyService... echo --------------------------------------------------- InstallUtil /i C:/ServiceFolder/MyService.exe echo --------------------------------------------------- echo Done. pause