Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why can't I install my service (runtime newer than loaded runtime)?

So I built a service in C# and I am trying to use the following command to install it:

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

It fails. When I look at the installLog.txt, I get this:

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.. 

The same approach works fine for installing a different assembly. I feel like it might be because the one that fails was written for .NET 4.0, and the one that works is in 3.5.

Does anyone have any experience with this problem?

like image 612
SuperNES Avatar asked Nov 18 '10 15:11

SuperNES


People also ask

How do I automatically install windows services?

In your Installer class, add a handler for the AfterInstall event. You can then call the ServiceController in the event handler to start the service. Now when you run InstallUtil on your installer, it will install and then start up the service automatically.


2 Answers

You are using the wrong installutil.exe If your application is built against .Net 4.0. Use the the installutil.exe in the 4.0 folder.

For x86:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe

For x64:

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

like image 50
Darryl Braaten Avatar answered Oct 14 '22 02:10

Darryl Braaten


Nobody even came close to getting this one!

Here's what I had to do:

  1. Right-click the service project in Visual Studio, go to "Properties"
  2. Set "Startup object" to the name of the service (it had been set to the value "(Not Set)").
  3. Save.
  4. Build
  5. Try to install again.
  6. It works! Yay! We can all go home!

Link to the code project article that helped:

like image 44
SuperNES Avatar answered Oct 14 '22 01:10

SuperNES