Thanks to the team for facing the heavy changes that were required to
improve the compatibility of IronPython and DLR with projects that target
.NET Framework 3.5. From Harry's account[1], we can see that it took a lot
of smarts and guts to do.

[1] http://devhawk.net/2008/09/17/DLR+Namespace+Change+Fire+Drill.aspx

Since that blog post hints that it should be possible to produce a native
3.5 version of IPy and DLR that wouldn't give that warning1685, I tried to
follow the instructions:

> If you're willing to compile from source yourself, it's fairly easy
> to build a set of binaries for a specific version .NET that doesn't
> have the warning. If you're building for v3.5, you need to remove
> Extension.cs from the three projects that have a copy of it
> (Microsoft.Scripting.Core, Microsoft.Scripting, IronPython) and
> add a reference to System.Core.dll.

Well, I tried that, and I didn't find it fairly easy. My attempt was like
this:

1. Open IronPython.sln
2. Remove projects Chiron, IronPythonConsole, IronPythonTest,
IronPythonWindow, Microsoft.Scripting.Silverlight
3. Change all 4 remaining projects to target Framework 3.5.
4. Clean and build the solution in release mode. Get errors like:
* The referenced component 'System' could not be found.
* The referenced component 'mscorlib' could not be found.
* The referenced component 'System.Core' could not be found.
5. Remove all references that were not found and add them again.
6. Delete these files:
* IronPython\Extension.cs
* Microsoft.Scripting.Core\Utils\Extension.cs
* Microsoft.Scripting\Utils\Extension.cs
7. Get errors like:
* Error    1    'StrongBox' is an ambiguous reference between
'System.Runtime.CompilerServices.StrongBox<bool>' and
'Microsoft.Runtime.CompilerServices.StrongBox<bool>'
8. Replace all occurrences of StrongBox with
Microsoft.Runtime.CompilerServices.StrongBox.
9. Repeat for IStrongBox.
10. Get errors like:
* 'Func' is an ambiguous reference between
'System.Func<Microsoft.Scripting.Actions.CallSite,object,int>' and
'Microsoft.Func<Microsoft.Scripting.Actions.CallSite,object,int>'
11. Replace all occurrences of Func with Microsoft.Func.
12. Again the same for 'System.Action' and 'Microsoft.Action'.
13. Now all 4 projects compile for framework 3.5. I don't feel like
deploying them, though, for fear of some side-efect of all those
replacements.

If anyone can tell me where I made a mistake, I appreciate.

Cheers!
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to