我知道在Windows中构建的二进制文件不需要为使用Mono的Linux计算机重新编译。它是否以其他方式工作?使用Mono在Linux机器上构建的二进制文件是否可以在仅使用.NET Framework的Windows上运行?在Windows上使用Mono构建的可执行文件
4
A
回答
5
是的 - 文件格式在Mono和.NET之间是可移植的。当然,这是禁止执行中的错误,这不是不可能的。
文件格式,甚至记录在ECMA-335,分区2,第25条
显然你需要的任何组件,您的应用程序引用。我相信,即使P/Invoke 可以可移植,如果你有相同的本地库名称暴露相同的功能。
2
不要忘了.NET二进制文件(exe或dll)包含与平台无关的IL代码。
因此,只要包含标准的可移植可执行文件(PE)头信息,可以在Windows上运行使用Linux上的Mono构建的二进制文件。二进制内的所有其他代码都是平台无关的IL。
要在实际操作中看到这一点,请尝试在Linux机器上安装MonoDevelop,然后构建一个简单的测试项目。
生成项目后,找到Debug目录。它包含的exe文件可以直接复制到窗口并运行。
相关问题
- 1. 在Windows上构建CompassApp(jruby应用程序)可执行文件
- 2. 在Windows上构建Mono的类库
- 3. 使用Mono为Linux创建可执行文件?
- 4. Maven exec插件构建成功,即使可执行文件在Windows上失败
- 5. 在Windows中使用Mono构建Mac .app文件
- 6. .net可执行文件在xp上构建,不能在Windows 7上启动 - werfault
- 7. 如何在Windows XP上使用Perl运行可执行文件?
- 8. Windows可执行文件结构
- 9. 使用Mono在Linux中识别可执行文件?
- 10. 使用Netbeans构建一个可执行文件.jar文件
- 11. 无法运行使用gcc构建的可执行文件
- 12. 使用swift在iOS上运行预构建可执行文件3 Xcode 8.2.1
- 13. 在可执行文件上使用dlopen()
- 14. 从python源代码构建一个Windows可执行文件
- 15. 在Mono下运行由F#3生成的可执行文件
- 16. 如何在Mac上构建SML/NJ可执行文件
- 17. 如何在Travis CI上构建MacOSX可执行文件?
- 18. 使用py2exe构建python代码的可执行文件
- 19. 试图在Linux/Ubuntu上使用Oracle库构建静态CGO可执行文件
- 20. 如何在Windows上创建单个文件的可执行文件python 2.7 x64?
- 21. 使用Android NDK构建可执行文件
- 22. 构建C/C++使用NDK为Android可执行文件失败
- 23. 使用python,vtk和py2exe构建可执行文件
- 24. 如何使用Qt构建静态库和可执行文件?
- 25. 用PHP/PHAR构建单文件可执行文件
- 26. 在Ubuntu上构建并运行Android本机应用程序(可执行文件)
- 27. 将Unix可执行文件转换为Windows可执行文件
- 28. 用Mono构建的应用程序是否在.NET上运行?
- 29. 从我的Ruby应用程序构建一个Windows可执行文件?
- 30. ruby中创建的文本文件正在构建为可执行文件