Friday, January 08, 2010

Installing IronPython 2.6RC1

I'm not a .NET guy at all. I'm in the process of working with a third party C# library, but would rather use IronPython instead of C#, so I tried to install IronPython 2.6 RC1 ... it didn't go well. The installer would get to about 90% complete, but then fail and rollback without any info as to what went wrong.

By manually running the .msi installer we can get a log file:
msiexec /i IronPython-2.6.msi /log install.log
The offending operation seems to be:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen.exe install C:\Program Files\IronPython 2.6\Microsoft.Scripting.dll /queue:1
The /queue parameter is to kick off the .NET Optimizing compiler service ... but this seemed to be failing. I could verify this when I ran the ngen.exe command directly:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ngen queue status
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.3053
Copyright (c) Microsoft Corporation. All rights reserved.
The specified service does not exist as an installed service. (Exception from HRESULT: 0x80070424)
Hmm, where's my JIT?

Turns out my .NET Runtime Optimization Service v2.0.50727_X86 service is either not running or not installed. In my case it was not installed. Very odd as I have .NET 2.0 -> 3.5.1 installed and everything else works. Oh well.

After some poking around I found you can register the service manually via:
%WINDIR%\Microsoft.NET\Framework<64>\v2.0.Number\mscorsvw.exe -i

Or, in my case, C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>mscorsvw.exe -i

That got the service installed and the IronPython install worked fine afterwards.

Hope this saves someone some time.

0 comments: