我有一个VBA EXE,用于我的文档转换应用程序,我们将它提供给多个客户端,他们从不抱怨任何兼容性问题,但现在我们正在将项目迁移到C#。所以下面是我怀疑我想要清除第一个
答案 0 :(得分:1)
我所知道的唯一方法是使用Mono进行静态编译或使用商业产品。我的理解是,它将.NET框架编译为本机代码,并将其包含在您的应用程序中(通常只包含您实际使用的部分)。这可能是非常有经验的.NET开发人员的领地。即使作为一个非常有经验的C#开发人员,我也从未遇到过这样做的情况,即执行此操作所涉及的潜在问题超过了简单安装.NET的成本。请参阅:Static compilation in the .NET world
VBA == Visual Basic for Applications ,因此它只能在Excel或Word等应用程序的上下文中运行。您可能指的是VB,例如VB 6,其中可以编译为本机exe,可以由操作系统直接执行,因为它是机器代码。另一方面,.NET编译成一种主要与机器无关的语言,基本上将编译的最后一步推迟到机器代码,直到它在目标机器上执行,因此必须在目标机器上安装.NET框架,以便它可以处理这最后一步。此外,.NET框架库外部化和共享有很多好处:每个应用程序没有重复部署,安全修复程序不依赖于应用程序作者更新其并行DLL等。有关机器代码的理解,请参阅:{{ 3}}