Python 用于 .NET3.5 的 .NET 编译和 Python3.x

Python for .NET compilation for .NET3.5 and Python3.x

最近在做一个项目,需要用到.NET 3.5 Dll库,团队使用的是Python3.x环境。

所以我去了 Python for .NET's github repo 并下载了源代码并尝试使用 Visual Studio 2013 自己编译。

在源代码中,有一个名为pythonnet的MVSC解决方案文件,我刚刚打开项目并尝试编译Python.Runtime

默认情况下,Conditional compilation symbolsPYTHON27, UCS4。所以我将其更改为 PYTHON35, UCS2 以满足我的要求。而且我能够成功编译它。

但是因为它需要和.NET Framework 3.5一起工作,所以我把Target Framework.NET Framework 4.0改成了.NET Framework 3.5。但是这次编译的时候报错很多,编译失败

谁能帮我编译,这样我就可以为 .NET 编译 Python,它适用于 .NET 3.5Python3.x?

最新的 pythonnet 使用来自 CLR 4.0 的 HashSet 以及来自 DLR 的 dynamic,后者无法轻易地向后移植到旧的 .NET 版本。

您可以使用 app.config:

将其他 DLL 从 .NET 3.5 重定向到 CLR 4.0
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
</configuration>