问题描述
在100%兼容Windows操作系统的Windows操作系统上,使用Visual Studio或msbuild编译的二进制文件是否兼容?例如,我可以在Visual Studio或Windows上的msbuild中编译二进制文件,然后将其打包以在Linux上使用,还是需要在Linux操作系统上使用mono构建二进制文件以确保完全兼容?
特别是我需要知道在Visual Studio 2019中生成的二进制文件在使用Mono 5.10的Linux下是否可以100%兼容
解决方法
在许多情况下,您在Windows上构建的二进制文件在Linux上的Mono或.NET Core下都可以正常工作。尽管.NET Core将更加完善,但许多接口都可以在这两种接口上工作。
但是,唯一可以确定的方法就是测试。即使您生成了完美的二进制文件,并且Mono对所调用的每个API均具有支持,您仍可能会在其中使用带有反斜杠的路径,而Linux则不支持。除非您使用所需的解释器在Linux上运行测试套件,否则您将不会知道。合适的CI设置可以在此提供帮助,因为它可以让您自动运行大多数测试。