none
Exception because System.IdentityModel.Selectors.dll is missing from the .NET 3.5 installation included with Windows 8 RRS feed

  • Question

  • One of our .NET 3.5 applications is throwing exceptions on Windows 8 (with the .NET 3.5 feature installed) because the assembly "System.IdentityModel.Selectors.dll" has been excluded from .NET 3.5 in Windows 8. See also http://answers.microsoft.com/en-us/windows/forum/windows_8-windows_install/at-least-one-net-35-assembly-missing-in-windows-8/762770c7-04e8-4141-8ea6-a504f90ea084?page=1 for an earlier thread about this issue.

    Additional information:

    • "System.IdentityModel.dll" exists and has a reference to the non-exising "System.IdentityModel.Selectors.dll".
    • The .NET 4.0 version of "System.IdentityModel.Selectors.dll" is included with Windows 8, it's only the .NET 3.5 one that is missing.

    I know that we have the options of recompiling for .NET 4 or removing our dependency on "System.IdentityModel.Selectors.dll" in the future. I'm only concerned about the compatibility of existing versions of our software with Windows 8.

    My questions are:

    • Is this compatibility problem known at Microsoft? Is it documented somewhere?
    • Will this be fixed in the near future?





    • Edited by Fabian Schmied Wednesday, August 22, 2012 2:08 PM Improved wording
    Wednesday, August 22, 2012 1:25 PM

Answers

  • Install the following hotfix to fix the issue:

    Hotfix rollup 2803760 is available for the .NET Framework 3.0 SP2 in Windows 8 and Windows Server 2012

    http://support.microsoft.com/kb/2803760

    Issue

    The Microsoft .NET Framework 3.5 distribution released with Windows 8 and Windows Server 2012 does not include the System.IdentityModel.Selectors.dll file because of the removal of the CardSpace feature from Windows. However, the System.ServiceModel.dll and System.IdentityModel.dll files continue to maintain the reference to System.IdentityModel.Selectors.dll. In this case, when an application resolves references for System.ServiceModel.dll and System.IdentityModel.dll and preloads their referenced assemblies at run time, an exception occurs that resembles the following:

    FileNotFoundException message: Could not load file or assembly 'System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.


    "A programmer is just a tool which converts caffeine into code"

    • Proposed as answer by Andre.Ziegler Wednesday, February 13, 2013 10:34 AM
    • Marked as answer by Fabian Schmied Thursday, February 14, 2013 7:33 AM
    Wednesday, February 13, 2013 10:34 AM

All replies

  • Hi ,

    Please refer to the following link to resinstall .Net 3.5 feature again. 

    Installing the .NET Framework 3.5 on Windows 8
    http://msdn.microsoft.com/library/hh506443(v=VS.110).aspx

    Note: You can enable the .NET Framework 3.5 by using the installation media (ISO image or DVD) you installed Windows 8 from. Mount the Windows 8 installation media and type the following command from an elevated command prompt:

    Dism /online /enable-feature /featurename:NetFx3 /All /Source:x:\sources\sxs /LimitAccess 

    where x: is the drive letter for the Windows 8 ISO image or DVD. See if this works. 

    More information:

    Windows 8 and .Net Framework 3.5 - Ask the Core Team - Site Home - TechNet Blogs

    http://blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx

    Thanks. 


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Friday, August 24, 2012 8:58 AM
  • Hi Aaron,

    Thank you for your response. I've just tried what you said, and it didn't change anything.

    FYI, I've also sent this to the .NET 4.5 App Compat e-mail address, and they are currently looking into this issue. However, since it is actually a Windows 8 compatibility problem, I'm also keeping this thread open. If I receive an answer to my e-mails, I'll post it here.

    Best regards,
    Fabian

    Friday, August 24, 2012 11:39 AM
  • Hi Fabian,

    Thanks for your update. Let's wait if there is any news from .Net group. 

    By the way, if you run this app in Windows 7 compatiblity mode, does it work? 

    Thanks. 


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Saturday, August 25, 2012 6:11 AM
  • Hi Aaron!

    I work with Fabian and to the best of my knowledge, we haven't tried it with Win7 compat mode. The application is actually an ASP.NET 3.5 Web Application hosted in IIS, only our repro-sample is a regular console application. Also, the issue is that an assembly referenced by another .NET Framework assembly is missing from the Global Assembly Cache and does not exist on the hard drive. I've never tried this but would the compatibility mode actually be able to substitute a faked assembly for this?

    Regards, Michael

    Saturday, August 25, 2012 8:02 AM
  • Hi Michael,

    Thanks for your information. Did this web application run well on Windows Server 2008 R2? If it works well in Windows Server 2008 R2, it might be a compatible issue. Then we may design the proper version for Windows 8. If not, this might be a .Net issue.  Is there any news from .Net side? Thanks. 


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    • Proposed as answer by HansFranz Wednesday, May 28, 2014 5:05 PM
    Monday, August 27, 2012 8:07 AM
  • Hi Aaron!

    Yes, the application runs well in Windows Server 2008 R2, since the assembly is avaible there. We've sent a repro to the .NET Compat team and are now waiting for them to get back to us.

    Regards, Michael

    Monday, August 27, 2012 11:01 AM
  • Hi Michael,

    Thanks for the update. Let's wait if there is any update from .Net team. Thanks. 


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, August 28, 2012 8:20 AM
  • Hi,

    Is there any solution to this problem? E.g. a .NET 3.5 reinstall guide/fix?

    Thursday, October 18, 2012 9:22 AM
  • Not yet, we're currently in touch with the .NET CLR team about it, and are waiting for a response.

    Are you, too, experiencing this problem?

    Thursday, October 18, 2012 9:56 AM
  • Yes.

    I'm upgrading our source to Visual Studio 2012 and .NET Framework 4.5 and encountered this problem on the Windows Server 2012 build server. I can do a workaround by adding an assembly reference to the System.IdentityModel.Selectors dll from the .NET Framework 4.5 and set "copy local" to true(*). But I don't like this solution (we have 100+ projects and besides it conflicts with our validation rules that prohibits references to assemblies in GAC (which would be the case on other build servers running other OS versions)). Maybe I should manually force the dll into the GAC? However that would not solve the expected runtime errors on Windows 8 and client machines when we deploy our products...

    Can you suggest/recommend a (temporary) solution?

    (*) Wonder why it works with a 4.0.0.0 version when the error message states:

    Cannot find dependency 'System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', which is required for assembly:

    System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

    Thursday, October 18, 2012 10:37 AM
  • Unfortunately, I don't know a better workaround either. However, you can e-mail netfx45compat at microsoft.com and describe your problem, which is what we did. Maybe the fact that other customers are experiencing this problem as well will improve our chances for a hotfix.

    Thursday, October 18, 2012 2:09 PM
  • I am also experiencing this issue on Windows 8 trying to run an app from the built-in Visual Studio web server.  I've tried everything above and nothing works.  I need to work on this web project.  Thought I'd ask again if there are any solutions since it's been a few days.  Thank you.
    Monday, October 22, 2012 9:24 PM
  • I decided to manually "patch" the .NET framework on the server because I consider it the best solution as it is here the problem is and will be solved by Microsoft (hopefully).

    The most difficult part was to locate the physical path of the dll on another machine. But when you have it you can simply "patch" your machine with the command:

    gacutil /i System.IdentityModel.Selectors.dll

    That solved my problem for now. But I still fear what'll happen when our customers start using Windows 8 client machines and Windows Server 2012 servers...

    Tuesday, October 23, 2012 6:37 AM
  • Hi Jul!

    > because I consider it the best solution as it is here the problem is and will be solved by Microsoft (hopefully).

    Yes, while this workaround works as a stopgap solution, the problem will most likely not be addressed by Microsoft via a hotfix unless they receive several unrelated problem reports at the e-mail address Fabian posted earlier (netfx45compat at microsoft.com) and/or a PES-call to raise awareness on a management level. So, please contact the folks at Microsoft and reference this thread in your e-mail. They will likely ask you for a repro-sample and a description of why this is an issue (i.e. do you actually use Cardspace or is it just a missing reference) and how many of your customers are affected by this.

    Regards, Michael

    Tuesday, October 23, 2012 6:48 AM
  • We are having the same issue with WCF application after we migrate to Windows Server 2012.

    We tried the proposed solution here of reinstalling .NEt 3.5 but this does not work.

    Configuration Error
    Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

    Parser Error Message: Could not load file or assembly 'System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

    Please advise if this will be fixed in the near future.

    Tuesday, October 30, 2012 10:01 PM
  • Hi Woodchux,

    As I said earlier to Jul, please contact the respective team at Microsoft about your issue (netfx45compat at microsoft.com). We've already done so and are still waiting for a definitive response about whether or not this will be fixed. The more people contacting Microsoft, the more likely a fix will be.

    Best regards,
    Fabian

    Wednesday, October 31, 2012 7:55 AM
  • We have the same issue.

    The best part is I tested our app for compatibility with windows 8 back in August and it worked just fine. I had a client call in today with the issue so i loaded up my vm and verified it worked. Then i logged into a different user account that didn't already have the clickonce application installed and got the same error as the client. After that I removed the app from the working user profile and tried to install it again and received the same error.

    It really is a bummer as it worked beautifully back in August. I went to install the addin, it asked for .net 3.5, installed, worked.

    Thursday, November 15, 2012 11:03 PM
  • Install the following hotfix to fix the issue:

    Hotfix rollup 2803760 is available for the .NET Framework 3.0 SP2 in Windows 8 and Windows Server 2012

    http://support.microsoft.com/kb/2803760

    Issue

    The Microsoft .NET Framework 3.5 distribution released with Windows 8 and Windows Server 2012 does not include the System.IdentityModel.Selectors.dll file because of the removal of the CardSpace feature from Windows. However, the System.ServiceModel.dll and System.IdentityModel.dll files continue to maintain the reference to System.IdentityModel.Selectors.dll. In this case, when an application resolves references for System.ServiceModel.dll and System.IdentityModel.dll and preloads their referenced assemblies at run time, an exception occurs that resembles the following:

    FileNotFoundException message: Could not load file or assembly 'System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.


    "A programmer is just a tool which converts caffeine into code"

    • Proposed as answer by Andre.Ziegler Wednesday, February 13, 2013 10:34 AM
    • Marked as answer by Fabian Schmied Thursday, February 14, 2013 7:33 AM
    Wednesday, February 13, 2013 10:34 AM