<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx</link><description>I typically recommend that you build and test your assemblies against the same version of .NET that you will be running them against. That way, you'll have correct references and avoid surprises from behavior differences between builds. Older assembly,</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#361360</link><pubDate>Thu, 27 Jan 2005 06:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:361360</guid><dc:creator>Sam</dc:creator><description>Interesting post.&lt;br&gt;&lt;br&gt;You mention it is a goal of the .NET team to maintain backwards compatibility as much as possible.&lt;br&gt;&lt;br&gt;I cant help wondering why this is important?&lt;br&gt;&lt;br&gt;&amp;quot;new versions of components aren't REALLY compatible&amp;quot;&lt;br&gt;&lt;br&gt;If there is a risk, however small, that a companies application may not perform correctly when run against a later version of the framework then they are very likely to bundle an installer for the appropriate version of the runtime with their product and provide an app.config file.&lt;br&gt;&lt;br&gt;Correct me if I’m wrong, but doesn't that mean there is little requirement for backwards compatibility with regard to execution of assemblies compiled against previous versions?&lt;br&gt;&lt;br&gt;And then what about source code compatibility? &lt;br&gt;&lt;br&gt;A situation would arise if a company decided to switch to a later version of .NET during development. In that case, the developers would be forced to modify their source code since it would not compile against the more recent framework &amp;quot;out of the box&amp;quot;. &lt;br&gt;&lt;br&gt;Personally, I would be perfectly happy to modify my code if it meant I could take advantage of a more powerful framework which was still as coherent as, or possibly more coherent than v1.0 with regard to content.&lt;br&gt;&lt;br&gt;Or am I missing an important point here?&lt;br&gt;</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#361633</link><pubDate>Thu, 27 Jan 2005 15:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:361633</guid><dc:creator>Paul Gunn</dc:creator><description>&lt;br&gt;You mentioned the issue with interop loading the newest framework version.. This has been pretty problematic for me recently. &lt;br&gt;&lt;br&gt;I have been on an installation project where we are writing custom action dlls in managed c++. The dll entry points have the same behavior as interop (picking the newest framework version) and this bit us as a result of some changes 2.0 made regarding how xmlserialization plays with assembly loading.&lt;br&gt;&lt;br&gt;We found a workaround that works with both framework versions, but compatibility is still a concern. Obviously in this case we can't use a app.config file - since the app in question is msiexec.exe (the microsoft installation program).&lt;br&gt;&lt;br&gt;Has there been any thought to having the framework version used in interop be based on the assembly being loaded for interop? I would imagine it quite common that the component writer may not have control over the originating Exe, nor should the consumer of the component really need to care what framework the component wants.&lt;br&gt;</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#361814</link><pubDate>Thu, 27 Jan 2005 19:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:361814</guid><dc:creator>Suzanne</dc:creator><description>Sam: It's not that simple. For instance, there are cases where components built against different .NET versions need to run against the same .NET. The components may be add-ins, where the host has the option to choose the .NET version, but the individual add-ins would not. If there was a v1 add-in and a v2 add-in in the same process, running the v2 .NET, then we'd hope that the v2 .NET is backwards-compatible, or else the v1 add-in would be broken.&lt;br&gt;&lt;br&gt;Regarding source code backwards-compatibility: yes, we do take steps to make that just work as well. But, again, there are times when it's not realistic to try to make it perfectly compatible. And, yes, it's not as breaking as a binary compatibility breaking change, as developers can update their sources when they recompile...unless they recompile at runtime.&lt;br&gt;</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#361841</link><pubDate>Thu, 27 Jan 2005 20:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:361841</guid><dc:creator>Suzanne</dc:creator><description>Paul: Consider the add-in case from my last comment. With your suggestion, if the v1 add-in is loaded first, causing the v1 .NET to be loaded, then the v2 add-in is broken. The feature it requires may not exist in v1. Even if you somehow force the v2 add-in to be loaded first (which may not be an option for many apps, since they may not even know about the v2 add-in yet), then the v1 add-in still needs to deal with the v2 .NET. &lt;br&gt;&lt;br&gt;That's why interop has chosen to just load the latest available .NET up front, and then that can be overridden by app.config. But, we do take compatibility problems seriously. If you run into them, especially with a beta, please give feedback in the appropriate beta forum. We do listen and try to take appropriate steps. (But, please don't email us directly. &lt;a target="_new" href="http://blogs.msdn.com/suzcook/archive/2003/12/05/57253.aspx"&gt;http://blogs.msdn.com/suzcook/archive/2003/12/05/57253.aspx&lt;/a&gt; ) </description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#409454</link><pubDate>Tue, 19 Apr 2005 02:15:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:409454</guid><dc:creator>Mark A. Richman</dc:creator><description>One oddity I noticed in playing with VS05b2 this weekend was the GAC behavior. I removed an older copy of the CTP, but it left some assemblies in the GAC. For example, Microsoft.VisualStudio.TextManager.Interop.8.0. VS05b2 installed the same assembly, same version (8.0.0.0), same public key token, same culture. The only difference was the timestamp of the assembly. I thought the GAC was supposed to protect against junk like that. What am I missing?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Mark</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#445931</link><pubDate>Mon, 01 Aug 2005 11:10:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:445931</guid><dc:creator>diegov</dc:creator><description>I don't know what is wrong, but I have seen related oddities, and I think it is worst than dll hell. &lt;br&gt;Even if I uninstall the 1.1 component of the GAC and add the 2.0 version, many times, with crossed fingers, at different times of the day, and with recompilation, I don't get to debug it anymore. Now I remmember mama said &amp;quot;avoid the GAC&amp;quot;... or was it Chris Sells?</description></item><item><title>WinFX SDK .NET Framework Version Incompatible with July CTP Version</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#451253</link><pubDate>Sat, 13 Aug 2005 16:44:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:451253</guid><dc:creator>Sam Gentile's Blog</dc:creator><description /></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#486027</link><pubDate>Fri, 28 Oct 2005 07:37:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:486027</guid><dc:creator>VinceB</dc:creator><description>It all makes sense but what bothers me is the rather cryptic message.  &amp;quot;Version [...] is not a compatible version.&amp;quot;  Tell me there is more for the user if we just return the error message for users.  It's better than some.  How about a little runtime help such as &amp;quot;This is most likely due to...for more information, refer to http://....&amp;quot;.&lt;br&gt;&lt;br&gt;Thanks for taking the time to mention the issue.  &lt;br&gt;&lt;br&gt;-VinceB</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#544406</link><pubDate>Mon, 06 Mar 2006 14:45:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:544406</guid><dc:creator>Mark Heaton</dc:creator><description>I have just run into the dreaded CLDB_E_FILE_OLDVER error message.&lt;br&gt;&lt;br&gt;It would make life so much easier if we could use tools such as tlbimp to target a specific version of the framework.&lt;br&gt;&lt;br&gt;As someone being kind and distributing my COM object with a .NET assembly I gain little advantage in forcing my users to upgrade to .NET 2.0 (Significantly larger code base, more testing etc. if they haven't already got it) when I don't require the framework for my core application which is written in C++.&lt;br&gt;&lt;br&gt;I can just as simply target 1.1 and rely on the 2.0 framwork to work with my v1.1 targeted assembly.&lt;br&gt;&lt;br&gt;</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#547232</link><pubDate>Thu, 09 Mar 2006 19:06:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:547232</guid><dc:creator>Sriram</dc:creator><description>Is there a way for me to know which CLR was used to load a DLL while in Debug mode?&lt;br&gt;&lt;br&gt;My scenario is 2.0 exe calls an 1.1 dll. I am sure that when the DLL is loaded, 1.1 CLR is loaded, but just wanted to confirm the same in debug mode by setting a break point in the DLL. Any way I can achieve it?</description></item><item><title>CLR 1.1 / CLR 2.0 Interoperability</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#550748</link><pubDate>Tue, 14 Mar 2006 00:25:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:550748</guid><dc:creator>Colin Neller</dc:creator><description /></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#589994</link><pubDate>Thu, 04 May 2006 19:11:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:589994</guid><dc:creator>Marcus Arraya</dc:creator><description>I am trying to debug into a v1.1 assembly from VB6 and it was working fine before I installed framework v2.0 side-by-side v1.1. &amp;nbsp;I cannot now attach to the VB6 process and have tried creating app.config files for the assemblies but still to no avail, I am using:&lt;br&gt;&lt;br&gt;&amp;lt;startup&amp;gt;&lt;br&gt; &amp;nbsp; &amp;nbsp;&amp;lt;supportedRuntime version=&amp;quot;v1.1.4322&amp;quot; /&amp;gt;&lt;br&gt; &amp;nbsp;&amp;lt;/startup&amp;gt;&lt;br&gt;&lt;br&gt;in the config file. &amp;nbsp;The only way that it appears that I can go back to cross debugging in VB6 is to uninstall FW 2.0 - any ideas ?&lt;br&gt;&lt;br&gt;Regards Marcus</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#610048</link><pubDate>Mon, 29 May 2006 15:29:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:610048</guid><dc:creator>Anders G</dc:creator><description>Marcus&lt;br&gt;&lt;br&gt;I have the same problem. I suppose you build Class Libraries like we do, to be used from VB6. &lt;br&gt;&lt;br&gt;Try to add&lt;br&gt;	&amp;lt;startup&amp;gt;&lt;br&gt;	&amp;lt;requiredRuntime version=&amp;quot;v1.1.4322&amp;quot; /&amp;gt;&lt;br&gt;	&amp;lt;/startup&amp;gt;&lt;br&gt;to your config file.&lt;br&gt;&lt;br&gt;I worked for me, the problem is that we run the COM dlls in COM+, so I have to create a dllhost.exe.config file...&lt;br&gt;&lt;br&gt;BR&lt;br&gt;Anders G</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#629675</link><pubDate>Tue, 13 Jun 2006 19:34:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:629675</guid><dc:creator>Clinton</dc:creator><description>This might seem a silly question but here i go.&lt;br&gt;i am having a problem with serialization between client in version 1.1 and server in version 2.0 Is it possible to tell the clr to use a specific assembly in clr version 1.1 (i.e. on the server side it should clr 1.1 for a particular assembly)&lt;br&gt;&lt;br&gt;I have tried to startup tags to perform this operation but i receive a BadImageFormatException. </description></item><item><title>Colin Neller - CLR 1.1 / CLR 2.0 Interoperability</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#1259483</link><pubDate>Mon, 11 Dec 2006 17:40:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1259483</guid><dc:creator>Colin Neller - CLR 1.1 / CLR 2.0 Interoperability</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.colinneller.com/blog/CLR11CLR20Interoperability.aspx"&gt;http://www.colinneller.com/blog/CLR11CLR20Interoperability.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: New Assembly, Old .NET (and Vice-Versa)</title><link>http://blogs.msdn.com/suzcook/archive/2005/01/26/new-assembly-old-net-and-vice-versa.aspx#9863812</link><pubDate>Tue, 11 Aug 2009 07:07:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9863812</guid><dc:creator>Asif</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Is the number of .net runtime enviornment=number of .net applications currently running?&lt;/p&gt;</description></item></channel></rss>