Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

Cannot pre-install .NET Framework 2.0 during the T13 stage of OS setup using svcpack.inf

Cannot pre-install .NET Framework 2.0 during the T13 stage of OS setup using svcpack.inf

  • Comments 9

I have heard from 2 customers this past week who were trying to pre-install the .NET Framework as part of the T13 phase of OS setup (in their cases, Windows XP).  They were including the .NET Framework 2.0 setup command line in svcpack.inf and then copying svcpack.inf into the i386 directory of their OS install location.  Their svcpack.inf looks similar to the following:

[Version]
Signature="$Windows NT$"

[SetupData]
CatalogSubDir="i386\svcpack"

[ProductCatalogsToInstall]

[SetupHotfixesToRun]
dotnetfx.exe /Q /C:"install.exe /Q"

However, both customers found that the .NET Framework 2.0 setup failed in this scenario.  The error in the verbose MSI log file for .NET Framework 2.0 setup is the following:

Error 1406.Could not write value DW0200 to key \Software\Microsoft\PCHealth\ErrorReporting\DW\Installed.  System error .  Verify that you have sufficient access to that key, or contact your support personnel.

One of the customers worked around this first error by deleting the DW key during OS setup before installing the .NET Framework 2.0.  However, when doing this, they then encountered the following error:

MSI (s) (9C!A8) [23:03:15:484]: Product: Microsoft .NET Framework 2.0 -- Error 25007.Error occurred while initializing fusion. Setup could not load fusion with LoadLibraryShim(). Error: The handle is invalid.

Unfortunately, I don't know of a way to workaround this second error.

This scenario used to work with .NET Framework 1.0 and 1.1 setup, but it has been broken by some of the changes made to setup in .NET Framework 2.0 (the registry key listed above and the custom action to install assemblies are both new in .NET Framework 2.0 setup).

I don't have much experience with customizing OS installations using the various methods that are available, so I asked these customers why people might want to use svcpack.inf to install the .NET Framework as part of OS setup as opposed to other methods that have been shown to work for the .NET Framework 2.0 (such as using the GuiRunOnce section of winnt.sif or setting a RunOnceEx registry value to launch .NET Framework 2.0 setup on first boot of the OS).  Here is what they told me:

  1. Many prefer using svcpack.inf because it allows them to avoid setting OEMPreinstall=Yes in winnt.sif, which breaks F6 functionality for mass storage drivers
  2. It was common with the .NET Framework 1.0 and 1.1 because it worked reliably, and installing it through svcpack.inf meant it would alread be installed so that other setups that rely on the .NET Framework will also install correctly afterward

I am going to try to look into possible workarounds to get .NET Framework 2.0 setup to work when launched by svcpack.inf in the T13 phase of OS setup.  However, for now, please be aware of this limitation and update your OS install scripts accordingly.  In addition, if this scenario is important to you, please go to the bug form for this issue on the MSDN product feedback site and click on the link to vote on this bug so that the product team will better understand the importance of making this type of scenario work.

Also, if anyone has any tips and tricks that can be used to get this to work, please post a comment on this blog post or contact me and let me know.

 

  • This happens to folks installing Office as well. See related thread at MSFN:

    http://www.msfn.org/board/index.php?act=ST&f=70&t=27170

    Seems they were able to ignore the error by specifying /qb. Frankly, I'd much rather deal with this stuff after the OS is installed.
  • I've come across this with an Office 2003 install during uattended XP setup - all I did was create the HKLM\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW\Installed key before running setup (using a .reg file).
  • Hi Brad and Duncan - thank you for the information and advice. Unfortunately, as I described above, once we get past the 1406 error when .NET Framework setup tries to write the DW\Installed registry value, we hit additional errors trying to install assemblies. I haven't figured out a way to workaround that yet...

  • Hey,

    After a long night of heavy debugging, I managed to install .NET Framewoek 2.0 from svcpack.inf

    The solution is quite surprising, and I don't really understand why it works, but it does.

    Just changed the REG_DWORD value of SystemSetupInProgress in HKEY_LOCAL_MACHINE\SYSTEM\Setup from 1 to 0,
    and install.

    This can be done by running the following:
    REG ADD HKLM\SYSTEM\Setup /V SystemSetupInProgress /T REG_DWORD /D 0 /F

    If you'd like a detailed explanation of how I figured this out, I'll be happy to explain tomorrow after a good long sleep.


    Ciao,
    Guy Rozendorn
    guy@rozendorn.ath.cx
  • I previously wrote about a scenario where installing the .NET Framework 2.0 fails when launching it from...
  • i just used RegEdit to change reg keys, not the scripts, but 2 .reg files

    first:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\Setup]

    "SystemSetupInProgress"=dword:00000000

    [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW]

    than, at the end of installation:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\Setup]

    "SystemSetupInProgress"=dword:00000001

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\DW]

    all called from BATCH:

    REGEDIT.EXE  /S  1.REG

    start /wait DotNetFx_1_1.exe /q:a /c:"install /l /q"

    start /wait dotNetFx35setup.exe /qb /norestart

    REGEDIT.EXE  /S  2.REG

    exit

    NetFx 1.1, 2.sp1, 3.sp1, and 3.5 were installed  with no problem, and fast enough too.

  • Hi Ibach - I personally prefer not to need to create and copy these 2 additional files, so that is why I listed the reg add and reg delete commands as a workaround in the post at http://blogs.msdn.com/astebner/archive/2006/05/06/591694.aspx.  However, creating and merging in 2 registry files will work in this scenario as well, so it is up to you which workaround you'd prefer to use.

  • here's download ...

    http://ibach.my2gig.com/index.files/NetFx3_5.html

  • I've tried to use your workaround, but probably f* up somewhere... i've got error complaining about registry being locked and reg keys not written... i'll give it a closer look.

    Anyway, important thing is that it works, and that setup file is not too big.

    im working at repacking it all now, i think i can slim it further to about 60 MB or lass.

    If i get to do that, ill let you all know in hope someone will give it some testing.

Page 1 of 1 (9 items)
Leave a Comment
  • Please add 4 and 8 and type the answer here:
  • Post