<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-CA link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Opening up our existing products native lib output to mixed mode proved to be a real pain, so I took your first suggestion Brett.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>After changing the project to .NET 4.0, changing the target info to &#8216;clr4.pyd&#8217; and changing all clr related strings in all the files to clr4, I have it working.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>In my implementation, all my custom rack code and .NET support are called in from testlib<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; import testlib<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; twoDotOAssemblies = testlib.clr.ListAssemblies(True)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; twoDotOAssemblies[0]<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>u'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; fourDotOAssemblies = testlib.clr4.ListAssemblies(True)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; fourDotOAssemblies[0]<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>u'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>I agree, it is fuzzy to me as to what is happening behind the scenes when I do:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>testlib.clr.AddReference(&quot;System&quot;)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&lt;System.Reflection.Assembly object at 0x04FBFF58&gt;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; testlib.clr4.AddReference(&quot;System&quot;)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&lt;System.Reflection.RuntimeAssembly object at 0x04FC0300&gt;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&#8230;but for my purposes, it doesn&#8217;t matter.&nbsp; I don&#8217;t do any dot net calls other than my custom packaged C# library functions in .NET.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>When I do want to play in that realm, I use IronPython but I generally just write what I need in C# and then call it in pythonnet<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Thanks for the help!<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Liam Corrigan <br><b>Sent:</b> March-22-12 5:09 PM<br><b>To:</b> pythondotnet@python.org<br><b>Subject:</b> RE: import clr_2, import clr_4 vs import clr<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='color:#1F497D'>I make a reference to System, I need to do it through from clr.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; import System<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Traceback (most recent call last):<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&nbsp; File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>ImportError: No module named System<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; import clr<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt; clr.AddReference(&quot;System&quot;)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&lt;System.Reflection.Assembly object at 0x04ECDDC8&gt;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>&gt;&gt;&gt;<o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>So I figured if I had a &#8216;import clr_2&#8217;, <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Then the call to &#8216;clr_2.AddReference(&#8220;System&#8221;) would call the 2.0 version of System.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Tribble, Brett [<a href="mailto:btribble@ea.com">mailto:btribble@ea.com</a>] <br><b>Sent:</b> March-22-12 4:59 PM<br><b>To:</b> Liam Corrigan; <a href="mailto:pythondotnet@python.org">pythondotnet@python.org</a><br><b>Subject:</b> RE: import clr_2, import clr_4 vs import clr<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>I would say you could just dupe the projects under the solution and change the target info, but how are you going to control which one handles imports IE &#8220;import System&#8221;?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:pythondotnet-bounces+btribble=ea.com@python.org">pythondotnet-bounces+btribble=ea.com@python.org</a> [<a href="mailto:pythondotnet-bounces+btribble=ea.com@python.org">mailto:pythondotnet-bounces+btribble=ea.com@python.org</a>] <b>On Behalf Of </b>Liam Corrigan<br><b>Sent:</b> Thursday, March 22, 2012 1:28 PM<br><b>To:</b> <a href="mailto:pythondotnet@python.org">pythondotnet@python.org</a><br><b>Subject:</b> [Python.NET] import clr_2, import clr_4 vs import clr<o:p></o:p></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal>Hi guys, <o:p></o:p></p><p class=MsoNormal>I&#8217;ve been using python .NET 2.0 in python 2.7.2 successfully for some time now and have also used the .NET 4.0 version, but of course I need to replace the clr.pyd and Python.Runtime.dll with the .NET 4.0 versions.<o:p></o:p></p><p class=MsoNormal>Although most of my 2.0 libs work over the 4.0 version, there is one in house library targeted against .NET 2.0 that will not, without some awkward hacks.<o:p></o:p></p><p class=MsoNormal>I need to be able to call into libraries written against both .NET 2.0 and 4.0, as separated calls - ideally, I&#8217;d like to have things such that I can operate in a python script something like this:<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>import clr_2<o:p></o:p></p><p class=MsoNormal>import clr_4<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>clr_2.AddReference(&quot;MyDOTNET_2.0_BasedLib&quot;)<o:p></o:p></p><p class=MsoNormal>clr_4.AddReference(&quot;MyDOTNET_4.0_BasedLib&quot;)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Are there any settings in the source build that I can do, to kick out two separate clr.pyd and Python.Runtime.dll&#8217;s with new names and matching .NET version support? <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt'>Liam Corrigan</span></b><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><b><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'>IMPORTANT LEGAL NOTICE </span></b><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p><p>This message is intended only for the use of the named addressee. It may contain information that is copywritten, privileged, confidential and exempt from disclosure under applicable law. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this in error, please notify the sender immediately and delete it from your system. Communications using this system are monitored and recorded for lawful business purposes.<o:p></o:p></p></div><b>IMPORTANT LEGAL NOTICE </b>

<p>This message is intended only for the use of the named addressee. It may contain information that is copywritten, privileged, confidential and exempt from disclosure under applicable law. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this in error, please notify the sender immediately and delete it from your system. Communications using this system are monitored and recorded for lawful business purposes.</p>
</body></html>