I can't remember the exact reason, maybe RD will jump in here and remind us, but there is something in particular that does not work correctly when embedding interops. I was super excited about the functionality when it came out only to hit the roadblock and haven't revisited the issue since.
I'm a little curious as to why the older .exe's won't run with the newer Interop.dll's. My suspicion is that the old stuff is built for an older version of the CLR and the new stuff is built for the latest version of the CLR. Take a look at [url=http://msdn.microsoft.com/en-us/library/bb822049.aspx].NET Framework Versions and Dependencies[/url]. Specifically, and I quote MSDN:
[quote]The .NET Framework versions 2.0, 3.0, and 3.5 are built with the same version of the CLR (CLR 2.0). These versions represent successive layers of a single installation. Each version is built incrementally on top of the earlier .NET Framework versions. It is not possible to run versions 2.0, 3.0, and 3.5 side by side on a computer. When you install the .NET Framework 3.5 SP1, you get the 2.0 and 3.0 layers automatically. However, the .NET Framework 4 ends this layering approach. Starting with the .NET Framework 4, you can use in-process side-by-side hosting to run multiple versions of the CLR in a single process. Apps that were built for versions 2.0, 3.0, and 3.5 can all run on version 3.5, but they will not work on version 4 or later.[/quote]
So if this is the case, you have two options:
[li]Run the old and new apps in separate folders with their respective Interop.dll's.[/li]
[li]Build all apps to a common version of the CLR and place in single folder.[/li]
Posted by: Jason Newell Post date: 1/25/2013 6:15:57 PM