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

SuperNES picture SuperNES · Nov 18, 2010 · Viewed 53.7k times · Source

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?

Answer

Darryl Braaten picture Darryl Braaten · Nov 18, 2010

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