Question

J'ai créé un service de fenêtre très simple en utilisant Visual Studio 2010 et .NُET 4.0.

Ce service n'a aucune fonctionnalité ajoutée à partir du projet de service Windows par défaut, autre qu'un programme d'installation a été ajouté.

Si j'exécute "installutil.exe appName.exe" sur ma boîte de développement ou sur d'autres machines Windows 2008 R2 de notre domaine, le service Windows s'installe sans problème.

Lorsque j'essaie de faire la même chose sur notre site client, l'installation échoue avec l'erreur suivante.

Microsoft (R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Exception occurred while initializing the installation:
System.IO.FileLoadException: Could not load file or assembly 'file:///C:\TestService\WindowsService1.exe' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515).

Cette solution n'a qu'un seul projet et aucune dépendance ajoutée.

Je l'ai essayé sur plusieurs machines dans notre environnement et deux chez nos clients.Les machines sont toutes Windows 2008 R2, toutes deux fraîchement installées.Une machine n'a que .net 2.0 et .net 4.0.Les autres .net 2, 3, 3.5 et 4.

Je suis un administrateur local sur chacune des machines.

J'ai également essayé le programme d'installation 64 bits mais j'obtiens l'erreur suivante, donc je pense que celui 32 bits est celui à utiliser.System.BadImageFormatException

Toute orientation serait appréciée.Merci.

Était-ce utile?

Autres conseils

Une autre raison de cette erreur est peut-être que vous avez copié votre programme à partir d'une source qui considère les fenêtres non fiables. Vous pouvez débloquer l'ensemble en cliquant sur « débloquer » après un clic droit et sélectionnez Propriétés dans le fichier.

Besoin de fichiers débloquer. ou tout au moins ce que le mien fixe.

Pour ce faire 'en vrac' dans Powershell débloquer

get-childitem *.* | Unblock-File 

ou sous DOS:

FOR %a in (*.*) do (echo.>%a:Zone.Identifier)

Cette question est arrivé pour moi parce que j'ai essayé d'installer le service à partir d'un emplacement réseau. En copiant le service.exe sur la machine locale avant d'utiliser installutil, réparer mon problème et le service installé avec succès.

Lorsque nous copions un exécutable à partir d’un autre ordinateur, Windows y marque un indicateur pour se protéger. Clic droit sur l'exécutable et dans les propriétés Cliquez Débloquer.Cela effacerait l'indicateur et l'exécutable du service serait installé.

ne pas oublier de voter en ... Essayez le SC comme suit: 1. Ligne de commande d'ouverture 2. écrire le dessous-    sc créer NomService binpath = "ExePath". rapport sur les résultats ...

J'ai aussi fait face à la même question. Dans mon cas, je déployait une nouvelle version des services publics, je copier de nouveaux exe, les fichiers installog puis essayer de désinstaller les utils.

Je recopiées l'ancienne version, uninstal les utils, recopié la nouvelle version et installé à nouveau. Quoi qu'il en soit, il est la suite logique j'ai suivi en premier lieu.

J'ai cette question et pour différentes entre de .net version de util et mon service
j'utilise util pour .net 2 et mon build de service avec .net4

vous pouvez utiliser cette commande à l'administrateur de l'exécution invite de commande de développeur

installutil C:\...\MyService\bin\Debug\MyService.exe

Dans mon cas, cette erreur a été provoquée par le passage accidentellement le répertoire contenant le service à InstallUtil au lieu de passer l'exe de service.

Il est évident que l'erreur humaine mais j'ai trouvé le message d'erreur tout à fait trompeur.

Comme par @ réponse de DoubleHelix ci-dessus, cette réponse m'a mis sur la bonne voie pour ma question particulière qui portait sur un problème de service en cours d'exécution dans Windows XP (Débloquer est pas une option dans l'onglet de sécurité que je pouvais trouver). Dans mon cas, je tentais d'exécuter un service à partir d'un lecteur séparé (à savoir pas sur le même lecteur que Windows et non dans les fichiers de programme), bien que le disque physique était le même. Déplacement mon service dans le dossier Program Files a résolu mon problème sous-jacent. (Je comptais « commentaire » contre @ réponse de DoubleHelix mais je ne semble pas être en mesure dans mon état actuel).

scroll top