The blog of flying mind

March 23, 2008

Binding to .NET Frameworks Assemblies

Filed under: Software

Also see: Java Concurrency, another series on its issues

Also see: Exception Handling in Running a Business

Also see: LoadFile vs. LoadFrom

Also see: Chicago geek dinner 11/22

Also see: Be my Support Group

Also see: Access to old blogs

By “Frameworks assemblies,” I mean the assemblies that ship with the CLR. But, I’m not counting mscorlib.dll , since it’s special in a different way.

With v1.0 SP3 or later, Frameworks assemblies are unified. That means that the version of those assemblies that you request is ignored - you get the version that matches the loaded CLR. This only applies when the assembly is loaded by version - that is, by assembly display name or static reference (AssemblyRef in the CLR metadata).

For example, if the v1.1 CLR is loaded and you request v1.0’s system.dll, then you’ll get the v1.1 system.dll back. If you load it by path from c:\foo\system.dll, however, then you’ll get c:\foo\system.dll back, not the v1.1 system.dll.

Those assemblies are unified because the owners of the code feel that they are so closely tied to the CLR/mscorlib.dll that they should not be loaded with a different version than they were built against. Additionally, there are some cases where they expect that only one copy of the Frameworks assemblies be loaded in a given process.

If the v1.0 (pre-SP3) CLR is loaded, though, you will get the assembly that you ask for. Unification isn’t done for Frameworks assemblies in that version.

Do not rely on this behavior. You should still fully-specify assembly references with the correct version. That’s just good practice, in general. Besides, if your assembly is loaded in a CLR later than v2.0, those references may not be unified,

Live Chat Software: Next generation of Live Chat. On-Demand. Easy-to-Use.

Also see: Single source code base for Silverlight and WPF solutions

Also see: Blogging and Newspapers, a Lesson in How Not to Brand and Market

Also see: Tagspace, Meet Claimspace

Also see: Uniqueness Typing Simplified

Also see: Tagspace, Meet Claimspace

Also see: Silverlight 2 Beta 1 Cross Domain Bug

Also see: A web site is not an RSS feed…nor the reverse.

Also see: Prototypes and Java Config with Spring

Also see: Degrees of optimism in projects

Also see: We Live in an “Open Book” World, the Lie of Information Overload

Also see: App.config Examples

Also see: My Presidential Endorsement:

Also see: Scott Guthrie presents at NDDNUG

Also see: Generics and .NET

Also see: DevWeek 2008 Cross Platform Silverlight Demos

Also see: Cool Silverlight Momentum Video Posted

Also see: Be my Support Group

Also see: Blogging and Newspapers, a Lesson in How Not to Brand and Market

Also see: Infrequent blogging

Also see: Be my Support Group

Also see: Java Concurrency, another series on its issues

Also see: My Presidential Endorsement:

Also see: Music and Movies - Give Away the Soundtrack

Also see: Dare Obasanjo on C# Anonymous Types

Also see: Playing Multiple Simultaneous Sounds in WPF

Also see: xClaims and Microformats

Also see: Prototypes and Java Config with Spring

Also see: Generics and .NET

Also see: Microformats are like RFID tags for the Web

Also see: Degrees of optimism in projects

so you may get unexpected behavior.
http://blogs.msdn.com/suzcook/archive/2003/07/30/binding-to-net-frameworks-assemblies.aspx

Comments »

The URI to TrackBack this entry is: http://cahtter.blogsome.com/2008/03/23/binding-to-net-frameworks-assemblies/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.






















Get free blog up and running in minutes with Blogsome
Theme designed by Hadley Wickham