我一直梦想着用脚本语言创建一个“真正的可执行文件”。有了基于 DLR 的 Python 和 Ruby 实现,这是否更接近现实了?

我想创建一个“真正的应用程序”:

  • Windows 窗体应用程序
  • 控制台应用程序
  • Windows 服务

并让分发单位是编译后的exe。

这可能吗?或者 MS 刚刚创建了基于 .NET 的脚本文件解释器?

如果您正在这样做,您将如何构建您的应用程序/项目?您是否使用 C# 和 DLR 代码的混合体?

有帮助吗?

解决方案

IronPython 或 IronRuby 项目可以很好地编译为 dll 或可执行文件,并且在各个方面都是“真正的”可执行文件,但运行它们的人必须安装相关的 .Net 框架和依赖项(依赖项可能存在于默认情况下位于同一目录,但必须安装框架)。与 Visual Studio 的集成仍然不存在,但是像这样的项目 IronPython工作室 使用免费的VS Shell效果不错。DLR 作为 VS 2010 中 c# 动态的依赖项的存在意味着与 Iron* 组的 VS 集成将成为一个更容易的目标和更高的优先级。

结果绝不会被解释(CIL 在运行时或通过 ngen(如果需要)被编译成机器代码),并且 DLR 的某些方面意味着某些操作以与后期绑定类似的方式推迟,但通过一些复杂的缓存机制更加强大和关键与天真的解释器相比,这使得它相对较快。

许多传统的解释型脚本语言正在创建自己的基于 VM 的编译策略或利用现有策略(例如 JVM、.Net CLR 或开放策略,例如 LLVM),因为这在许多常见情况下会导致性能显着提高。

就 Iron* 语言而言,以 MS CLR 作为基础的好处是,生成的可执行文件可以在最常见操作系统系列的绝大多数安装上“正常工作”。与 Java 不同的是,在许多操作系统中,jar 文件不能通过直接单击 / 或通过 shell“执行”来“运行”。不利的一面是,与基于 JVM 或 LLVM 的解决方案相比,这降低了互操作性,其中平台支持更广泛,但不可避免地在操作系统集成方面更加多样化。

其他提示

您可以使用常规 python 创建 exe 文件 Py2Exe. 。但是不应该有任何事情阻止您使用 Visual Studio 或 IronPython 创建 exe 夏普开发

虽然与 Iron* 问题没有直接关系,但对于想要从 python 脚本中获取二进制文件的人来说可能会很有趣: py安装程序

适用于 Windows(32 位和 64 位)、Linux(32 位和 64 位)和 Mac OS X(仅限 32 位)

适用于从 1.5 到 2.7 的任何版本的 Python

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top