none
.NET Runtime Optimizer RRS feed

  • Question

  • Hey everyone, working with my first Windows 8.1 Embedded image.  my reference image has .net 3.5 and 4.5 installed/enabled for Citrix Receiver.  I am building my image via SCCM and enabling write filters at the end of the Task Sequence.

    One first boot, the overlay (512MB) fills and the system becomes unresponsive.  I suspect this is due to the .NET runtime Optimizer running on first boot making lots of write changes that get redirected to the overlay.  If I disable the write-filters and let the optimizer complete, the overlay doesn't seem to fill up anymore.  

    Has anyone ran into this issue or have any suggestion other than leaving the write filters disabled after build and waiting to enable them?  Manual work for a build is no fun.  ;-)

    Tuesday, September 1, 2015 6:38 PM

All replies

  • Yes, I have ran into this. With the filter disabled, run ngen.exe to force execution of queued items:

    ngen.exe executeQueuedItems 1

    https://msdn.microsoft.com/en-us/library/6t9t5wcf%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    I set this up in a Pass 7 sync command during OS install.


    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Tuesday, September 1, 2015 11:20 PM
    Moderator
  • Thanks for the reply Sean.  Can you tell more about the Pass 7 sync command?  Not sure what you are referring to.

    I would think maybe the ngen command might be possible as a task in my SCCM Task Sequence?

    Thanks!

    Wednesday, September 2, 2015 2:20 AM
  • Are you using System Image Manager to create an answer file for installing WEI8.1?

    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Wednesday, September 2, 2015 4:03 PM
    Moderator
  • Well sort of, I used WSIM to create the answer file for the Build and Capture process.  I am now using SCCM 2012 R2/MDT 2013 to deploy it.  Is there a specific item in the Unattend I should be looking for?

    As a side note, I ran "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems 1" as a task in my Task Sequence, which only ran for about 2 minutes. After build completed its back running the .NET Optimizer and filling up the overlay again. :-/

    Wednesday, September 2, 2015 4:51 PM
  • When you using SIM, you can go to the Menu and Select Insert->Synchronous Command->Pass 7 OOBE. You can then enter a command, which will run on the first administrator account that is launched after the initial OOBE screen run.

    https://msdn.microsoft.com/en-US/library/ff793506(v=winembedded.60).aspx

    https://msdn.microsoft.com/en-us/library/JJ979475%28v=WinEmbedded.81%29.aspx?f=255&MSPPError=-2147217396

    My SIM book has some examples: http://www.annabooks.com/Book_SGSIM.html

    It is a continuous process to track down what assemblies need to be optimized. You may have to run the command for v3.5 as well. With UWFMGR, you should be able to see what assemblies are getting put into the overlay.


    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Wednesday, September 2, 2015 5:24 PM
    Moderator
  • Gotcha,

    I ended up adding two tasks to my Task Sequence that appears to have done the trick:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems

    When I specified 1, too much still happened after the fact.  Removing the priority forced it to do all and all seems well now.  Thanks for your assistance Sean.  Much appreciated.

    Wednesday, September 2, 2015 9:49 PM