ServiceInstaller x86 vs. x64

Hallo Wissende,

ich habe mit VS2010 und .net 4.0 eine Anwendung erstellt, die einen WCF-Dienst bereitstellt und als Windows-Dienst installiert werden soll.

Entwicklungsmaschine läuft unter WIN7 x64 (64bit), Laufzeitmaschine ist WIN7 x86 (32bit).

Sämtliche beteiligten Assemblys wurden mit Zielplattform AnyCPU und auch nochmal mit x86 erstellt. Ebenso der Service Installer.

Trotzdem kommt bei der Installation immer der Fehler:
Dieses Produkt wurde für die x64-Plattform konzipiert, wird jedoch auf „Intel“ installiert. Wenden Sie sich an den Hersteller, um das richtige Setup zu erhalten.

Wie erwähnt, alles auch mal mit Zielplattform x86: keine Veränderung.

Kann mir irgendjemand einen Tipp geben, wie ich da vorzugehen habe?

Danke und Grüße
Thomas

Hallo!
Das hört sich sehr danach an, als wäre die .exe eben doch mit Target „x64“ gebaut worden.
Die verwendeten Assemblies können normalerweise auf „AnyCPU“ bleiben, aber wenn Du sicher sein willst, dass sich der Dienst auf 32bit-Windows einspielen lässt, dann überprüfe nochmal (und danach noch einmal :smile:), dass auch wirklich x86 als Target ausgewählt ist.

Den Dienst kannst Du übrigens auch von Hand installieren: Einfach auf der Kommandozeile "installutil " eingeben (installutil liegt im jeweiligen .NET Frameworkverzeichnis unter %WINDIR%).

Gruß,
Martin

Hallo Martin,

vielen Dank, und Du hast Recht!
Nachdem ich nochmal alle Eigenschaften-Seiten einzeln durchgegangen bin, ist die entsprechende Einstellung beim Setup-Projekt für den Dienst als Property „TargetPlatform“ zu finden. Da gibt’s nämlich kein „AnyCPU“, sondern man muss explizit die Zielplattform auswählen. Bei den ganzen sonstigen Stellen, bei denen man AnyCPU eintragen kann, hatte ich das die ganze Zeit übersehen.

Gruß
Thomas