none
Feb 2006 CTP what happened to presentation framework.dll?

    Question

  • Hi,
    I was just trying to get the Feb 2006 CTP to work on my Win XP SP2 PC. I did a clean uninstall of all previous CTP versions. Also ran the cleanup msi tool given on the CTP download page.
    After correcting my XAML pages according to the breaking changes done in FEB CTP like changing the XML namespaces in top, I am still unable to open my XAML pages.
    It keeps trying to load the file forever in IE.
    Curious I checked with fuslogvw and it seems that there is a failed bind. Find it next...
    ==========================================================
    *** Assembly Binder Log Entry  (22/03/2006 @ 05:23:04) ***

    The operation failed.
    Bind result: hr = 0x80070002. The system cannot find the file specified.

    Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
    Running under executable c:\WINDOWS\system32\PresentationHost.exe
    --- A detailed error log follows.

    === Pre-bind state information ===
    LOG: User = MISYS-RISK\kumarpra
    LOG: DisplayName = PresentationFramework, Version=3.0.51116.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    (Fully-specified)
    LOG: Appbase = file:///c:/WINDOWS/system32/
    LOG: Initial PrivatePath = NULL
    LOG: Dynamic Base = NULL
    LOG: Cache Base = NULL
    LOG: AppName = PresentationHost.exe
    Calling assembly : (Unknown).
    ===
    LOG: This bind starts in default load context.
    LOG: Download of application configuration file was attempted from file:///c:/WINDOWS/system32/PresentationHost.exe.config.
    LOG: Configuration file c:\WINDOWS\system32\PresentationHost.exe.config does not exist.
    LOG: No application configuration file found.
    LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
    LOG: Post-policy reference: PresentationFramework, Version=3.0.51116.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    LOG: GAC Lookup was unsuccessful.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework.DLL.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework/PresentationFramework.DLL.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework.EXE.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework/PresentationFramework.EXE.
    LOG: All probing URLs attempted and failed.
    =====================================================================================================================
    And I am surprised that I there is no PresentationFramework.dll in the GAC. I was sure it was there in the prev (JAN CTP).
    Thought the installation of the FEB 2006 CTP went on fine I am not able to find this dll(as I suspect!!).
    If it has been removed for some reason why is PresentationHost.exe still looking for it?

    Thanks & Regards
    Pradeep Kumar

    Wednesday, March 22, 2006 11:57 AM

Answers

  • You are right that the assemblies should have been installed into the GAC during setup but weren't. That isn't a known issue and if you can provide setup logs (look for dd_avalon*.txt file under %temp%) we will be able to debug what went wrong.

    As for the assemblies under C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0, those are Reference Assemblies that are required at design/compile time. The WPF build system looks there first during build. They are not required for WPF apps at runtime. At that time, the assemblies in the GAC are used.

    Wednesday, March 22, 2006 9:26 PM
  • There is no PresentationHost.exe.config shipping with Avalon. I'm thinking Fusion looks for one anyway for an exe. For now, let's ignore that message.

    That zip has a bunch of log files from different dates. I looked at the one dated 2/28 as that seemed the most recent. It shows that assemblies were installed to the GAC successfully.

    MSI (s) (6C:E4) [18:57:04:293]: Executing op: CustomActionSchedule(Action=InstallAssembliesDeferred,ActionType=1025,Source=BinaryData,Target=InstallAssemblies,CustomActionData=PresentationFramework;c:\WINDOWS\Microsoft.NET\Windows\v6.0.5070\PresentationFramework.dll;PresentationFramework, Version=6.0.5070.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL)
    MSI (s) (6C:84) [18:57:04:309]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI1003.tmp, Entrypoint: InstallAssemblies
    Info 2013. Successfully added PresentationFramework to the Global Assembly Cache.

    Further, it shows the Avalon installer ran successfully:

    MSI (s) (6C:E4) [18:57:26:169]: Product: Windows Presentation Foundation Beta 2 v6.0.5257.51106 -- Configuration completed successfully.

    Can you look at the WinFX logs from the same data and verify if something else failed which led to the install being rolled back?

    Thursday, March 30, 2006 12:56 AM
  • We used to have version numbers 6.0.x.y and changed them to 3.0.x.y (I think with Feb CTP) to align them with the WinFX versioning strategy. That's part of the confusion and maybe part of the problem here too. But once you've uninstalled previous CTPs you should not have any 6.0.x.y assemblies left in the GAC.

    Perhaps we can start afresh. You can uninstall Windows SDK, then WinFX runtime, and then run the cleanup script. Then look in the GAC and remove any leftover 6.0 or 3.0 assemblies. Then install WinFX Feb CTP. That should get you in a good state.

    Also delete the contents of your ClickOnce application store before you launch any WPF app.

    Monday, April 24, 2006 9:02 PM
  • That version number changes - backward :(  did clear some confusion. I finally got it working.

    Issues
    1. The problem seems to be the assemblies in C:\Program Files\Reference Assemblies\Microsoft\WinFX\v3.0 were the old ones 6.x versions.
    2. The uninstall/cleanup tools didnt remove it.
    3. The new versions 3.x never went into this folder nor got updated onto GAC.

    Solutions
    1. I manually deleted the files in this folder
    2. knocked of all versions of WInFX assemblies from GAC.
    3. Then ran repair on the WinFX runtime setup and installed the new versions.

    This updated the folder with the latest 3.x versions and also updated the GAC correctly with the new versions.

    XAML applications run fine now.

    Note that this (backward) version number changes should have been mentioned somewhere. Could have been useful in resolving this earlier.
    Anyway thanks Ashish for the help all along.

    Thursday, April 27, 2006 8:01 AM

All replies

  • It seems that it had a problem during the installation of the feb CTP because, the WPF assemblies must be registered into the GAC and they are now located here: C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0
    Wednesday, March 22, 2006 2:03 PM
  • You are right that the assemblies should have been installed into the GAC during setup but weren't. That isn't a known issue and if you can provide setup logs (look for dd_avalon*.txt file under %temp%) we will be able to debug what went wrong.

    As for the assemblies under C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0, those are Reference Assemblies that are required at design/compile time. The WPF build system looks there first during build. They are not required for WPF apps at runtime. At that time, the assemblies in the GAC are used.

    Wednesday, March 22, 2006 9:26 PM
  • Indeed I found the assemblies all there in
    C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0
    But nothing in the GAC, besides I seem to be missing PresentationHost.exe.config, I dunno why?(u can see that in the fuslog I posted earlier)
    Is it required?
    I have uploaded the dd_avalon*.txt files as a zip here
    http://www.pradeepkumar.net/avalonlog/dd_avalon_retMSI1163.zip

    . I am sure setup didnt give any errors. It completed and gave a success message.

    Regards
    Pradeep Kumar
    Wednesday, March 29, 2006 5:26 AM
  • There is no PresentationHost.exe.config shipping with Avalon. I'm thinking Fusion looks for one anyway for an exe. For now, let's ignore that message.

    That zip has a bunch of log files from different dates. I looked at the one dated 2/28 as that seemed the most recent. It shows that assemblies were installed to the GAC successfully.

    MSI (s) (6C:E4) [18:57:04:293]: Executing op: CustomActionSchedule(Action=InstallAssembliesDeferred,ActionType=1025,Source=BinaryData,Target=InstallAssemblies,CustomActionData=PresentationFramework;c:\WINDOWS\Microsoft.NET\Windows\v6.0.5070\PresentationFramework.dll;PresentationFramework, Version=6.0.5070.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL)
    MSI (s) (6C:84) [18:57:04:309]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI1003.tmp, Entrypoint: InstallAssemblies
    Info 2013. Successfully added PresentationFramework to the Global Assembly Cache.

    Further, it shows the Avalon installer ran successfully:

    MSI (s) (6C:E4) [18:57:26:169]: Product: Windows Presentation Foundation Beta 2 v6.0.5257.51106 -- Configuration completed successfully.

    Can you look at the WinFX logs from the same data and verify if something else failed which led to the install being rolled back?

    Thursday, March 30, 2006 12:56 AM
  • The WinFX logs indicate success as well. No errors. Even if I uninstall and reinstall the problem remains. Surprisingly even when I try to manually install the assemblies on to the GAC using gacutil -i it still throws binding errors. I am not sure where I am going wrong. Will this approach work?

    Regards,
    Pradeep Kumar
    Thursday, April 06, 2006 5:20 AM
  • Pradeep, can you provide the binding errors that gacutil -i throws?
    Monday, April 17, 2006 4:54 PM
  • Sorry it is not the gacutil -i that throws the error.
    I was able to install all the assemblies under C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0

    into GAC.
    After that when I try to run XAML applications. I get the following in fuslog

    The operation failed.
    Bind result: hr = 0x80070002. The system cannot find the file specified.

    Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
    Running under executable c:\WINDOWS\system32\PresentationHost.exe
    --- A detailed error log follows.

    === Pre-bind state information ===
    LOG: User = MISYS-RISK\kumarpra
    LOG: DisplayName = PresentationFramework, Version=3.0.51116.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    (Fully-specified)
    LOG: Appbase = file:///c:/WINDOWS/system32/
    LOG: Initial PrivatePath = NULL
    LOG: Dynamic Base = NULL
    LOG: Cache Base = NULL
    LOG: AppName = PresentationHost.exe
    Calling assembly : (Unknown).
    ===
    LOG: This bind starts in default load context.
    LOG: Download of application configuration file was attempted from file:///c:/WINDOWS/system32/PresentationHost.exe.config.
    LOG: Configuration file c:\WINDOWS\system32\PresentationHost.exe.config does not exist.
    LOG: No application configuration file found.
    LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
    LOG: Post-policy reference: PresentationFramework, Version=3.0.51116.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    LOG: GAC Lookup was unsuccessful.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework.DLL.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework/PresentationFramework.DLL.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework.EXE.
    LOG: Attempting download of new URL file:///c:/WINDOWS/system32/PresentationFramework/PresentationFramework.EXE.
    LOG: All probing URLs attempted and failed.
    Note that the PresentationHost.exe is still trying to load version 3.0.51116.0 of PresentationFramework while I have got the newer version 6.0.5070.0.why is PresentationHost.exe looking for an older version.??
    Meanwhile I checked the version of PresentationHost.exe. It show as 3.0.51116.0? Is that correct? I even completely uninstalled & removed this file and then installed Feb CTP. still this version. Is this the source of my issues? any solutions?
    Friday, April 21, 2006 12:26 PM
  • It seems there is a mismatch of versions that PresentationHost.exe is trying to load. I created a config file with custom assembly binding directions to simply get rid of the binding errors.
    Here it is. Maybe it can throw some light
    Note in somecases I have a newer version of the dll it is trying to look for and in some cases I have only older version. No idea why...
    <?xml version ="1.0"?>
    <configuration>

     <runtime>
            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727">
                <dependentAssembly>
                   <assemblyIdentity name="PresentationFramework" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="3.0.51116.0" newVersion="6.0.5070.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="WindowsBase" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="UIAutomationTypes" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="UIAutomationProvider" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="UIAutomationClient" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="System.Printing" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="PresentationUI" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="PresentationCFFRasterizer" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="6.0.5070.0" newVersion="3.0.51116.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="ReachFramework" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="3.0.51116.0" newVersion="6.0.5070.0"/>
                </dependentAssembly>
               
                <dependentAssembly>
                <assemblyIdentity name="PresentationCore" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                    <bindingRedirect oldVersion="3.0.51116.0" newVersion="6.0.5070.0"/>
                </dependentAssembly>
           </assemblyBinding>
    </runtime>
    </configuration>

    Friday, April 21, 2006 12:34 PM
  • We used to have version numbers 6.0.x.y and changed them to 3.0.x.y (I think with Feb CTP) to align them with the WinFX versioning strategy. That's part of the confusion and maybe part of the problem here too. But once you've uninstalled previous CTPs you should not have any 6.0.x.y assemblies left in the GAC.

    Perhaps we can start afresh. You can uninstall Windows SDK, then WinFX runtime, and then run the cleanup script. Then look in the GAC and remove any leftover 6.0 or 3.0 assemblies. Then install WinFX Feb CTP. That should get you in a good state.

    Also delete the contents of your ClickOnce application store before you launch any WPF app.

    Monday, April 24, 2006 9:02 PM
  • That version number changes - backward :(  did clear some confusion. I finally got it working.

    Issues
    1. The problem seems to be the assemblies in C:\Program Files\Reference Assemblies\Microsoft\WinFX\v3.0 were the old ones 6.x versions.
    2. The uninstall/cleanup tools didnt remove it.
    3. The new versions 3.x never went into this folder nor got updated onto GAC.

    Solutions
    1. I manually deleted the files in this folder
    2. knocked of all versions of WInFX assemblies from GAC.
    3. Then ran repair on the WinFX runtime setup and installed the new versions.

    This updated the folder with the latest 3.x versions and also updated the GAC correctly with the new versions.

    XAML applications run fine now.

    Note that this (backward) version number changes should have been mentioned somewhere. Could have been useful in resolving this earlier.
    Anyway thanks Ashish for the help all along.

    Thursday, April 27, 2006 8:01 AM