Thanks again for the guidance Blair.

Our log contains an entry for each .dll:

ExecNetFx:  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen.exe 
install "C:\Program Files\Resolver One\bin\Controls.dll"
ExecNetFx:  Microsoft (R) CLR Native Image Generator - Version 
2.0.50727.3053
ExecNetFx:  Copyright (c) Microsoft Corporation.  All rights reserved.
ExecNetFx:  Installing assembly C:\Program Files\Resolver 
One\bin\Controls.dll
ExecNetFx:  All compilation targets are up to date.

This looks to me as though the ngen has been run correctly - but when I 
go to look at Controls.dll, it has not been ngen'ed, merely scheduled at 
priority 3.

If we change the Priority tag in our wix config to something other than 0:

      <File Id='%s'
        Name='%s'
        DiskId='1'
        Source='%s'>
        <netfx:NativeImage Id="NGen%s"
          Priority="1"
        />
      </File>

then this is reflected in the logfile - for priority 1, the logfile 
contains a /queue:1 parameter in the ngen.exe command line.

For priority 1 files, the ngen background service does then correctly 
ngen them soon after the install.

When we use a command line to manually run the command copied from the 
logfile:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ngen.exe install 
"C:\Program Files\Resolver One\bin\Controls.dll"

on a version installed without any ngen'ing, then the ngen appears to 
work as expected - is performed immediately and apparently 
synchronously, as far as we can tell.

So our outstanding question is: Why does the apparently well-formed ngen 
command line fail to run properly when executed by ExecNetFx as part of 
the msi install process?

Thanks heaps for all help given so far. We will, of course, continue to 
tinker with it and report any results back for future generations.

    Jonathan

Blair wrote:
> Try adding LOGVERBOSE=1 to your commandline and look in the log for entries
> from both the SchedNetFx and ExecNetFx actions to see if there are any
> clues...
>
> -----Original Message-----
> From: Jonathan Hartley [mailto:tart...@tartley.com] 
> Sent: Thursday, September 24, 2009 7:31 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] warning LGHT1076: ICE68 when adding ngen step to
> installed .dll files
>
> Hey Blair et al,
>
> I changed my Package InstallerVersion to '200', as suggested, and this 
> makes the compile-time warning go way. However, my installed .dll files 
> still seem to be scheduled for deferred ngen at priority 3.
>
> As you can see from the tags below, I ask for them to be done at 
> priority "0" - immediately, synchronously.
>
> I don't understand when priority '3' ngen'ing takes place. I've left my 
> installed files sitting around for an hour, but they still aren't done. 
> "ngen queue status" reports the service is running. What else do I need 
> to do?
>
> Any further clues as to what's going on would be much appreciated.
>
> Many thanks
>
>     Jonathan
>
> Jonathan Hartley wrote:
>   
>> Thanks Blair,
>>
>> We might need to support early versions of Windows. - we're writing a 
>> downloadable desktop application for widespread use.
>>
>> What happens to Me and earlier users who try to install when we use 
>> installerVersion 200? Are they unable to install?
>>
>> Thanks for the pointers, I'll go read about this.
>>
>>    Jonathan
>>
>>
>> Blair wrote:
>>     
>>> Do you really need to support Windows Me or earlier?
>>>
>>> In your Package element, set the InstallerVersion attribute to 200 or
>>> higher.
>>>
>>> -----Original Message-----
>>> From: Jonathan Hartley [mailto:tart...@tartley.com] Sent: Wednesday, 
>>> September 23, 2009 11:04 AM
>>> To: wix-users@lists.sourceforge.net
>>> Subject: [WiX-users] warning LGHT1076: ICE68 when adding ngen step to
>>> installed .dll files
>>>
>>> Hi all.
>>>
>>> I'm migrating our wix2 install to wix3. In the process, I'm 
>>> reinstating the netfx tags on some .dll files to get them ngen'ed as 
>>> part of the install, eg:
>>>
>>>       <File Id='Controls.dll'
>>>         Name='Controls.dll'
>>>         DiskId='1'
>>>         Source='..\bin\Controls.dll'>
>>>         <netfx:NativeImage Id="NGenControls.dll"
>>>           Priority="0"
>>>           Platform="32bit"
>>>         />
>>>       </File>
>>>
>>> With the netfx tag added, I get the following warning from light:
>>>
>>>     light -nologo -ext WixUIExtension -ext WixNetFxExtension 
>>> Resolver-One.wixobj
>>>
>>>
>>>     
>>>
>>>       
> C:\delivery\Dev\wix30_public\src\ext\NetFxExtension\wixlib\NetFxExtension.wx
>
>   
>>> s(819): warning LGHT1076: ICE68: This package has elevated commit in 
>>> CustomAction table (Action=NetFxExecuteNativeImageCommitInstall) but 
>>> it has a schema less than 
>>> 150.
>>>       
>
>   
>>> Running the produced .msi file, the dll files are installed, and they 
>>> are scheduled for ngen on priority 3. I'd really like to be able to 
>>> ngen them synchronously, as part of the install, as we did with Wix2. 
>>> I can't understand the above warning, and haven't been able to Google 
>>> anything useful either.
>>>
>>> Does anyone have any clues, or suggestions of what I should be 
>>> reading up on?
>>>
>>> Many thanks,
>>>
>>>     Jonathan
>>>
>>>   
>>>       
>
>   

-- 
Jonathan Hartley      Made of meat.      http://tartley.com
tart...@tartley.com   +44 7737 062 225   twitter/skype: tartley



------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to