Skip to main content

源码


Windows

  1. 环境:Requirements to build dotnet/runtime on Windows
  2. 编译
    • Debug:build.cmd mono+libs
    • Release:build.cmd mono+libs -c release
  3. include
    • artifacts/bin/mono/windows.x64.Debug/include
  4. dll
    • Microsoft.NETCore.App.Runtime.Mono.win-x64,修改后缀为.zip,并解压
    • 根据runtimes/win-x64/lib/net8.0筛选artifacts/bin/runtime/net8.0-windows-Debug-x64中的dll
    • artifacts/bin/mono/windows.x64.Debug/System.Private.CoreLib.dll
  5. lib
    • artifacts/obj/mono/windows.x64.Debug/out/lib
      • coreclr.dll
      • coreclr.import.lib
      • mono-component-debugger-static.lib
      • mono-component-debugger-stub-static.lib
      • mono-component-diagnostics_tracing-static.lib
      • mono-component-diagnostics_tracing-stub-static.lib
      • mono-component-hot_reload-static.lib
      • mono-component-hot_reload-stub-static.lib
      • mono-component-marshal-ilgen-static.lib
      • mono-component-marshal-ilgen-stub-static.lib
      • mono-profiler-aot.lib
      • monosgen-2.0.lib

Linux

  1. 环境:Requirements to build dotnet/runtime on Linux
  2. 编译选项:v8.0.5-Linux
  3. 编译
    • Debug:./build.sh mono+libs
    • Release:./build.sh mono+libs -c release
  4. include
    • artifacts/bin/mono/linux.x64.Debug/include
  5. dll
    • Microsoft.NETCore.App.Runtime.Mono.linux-x64,修改后缀为.zip,并解压
    • 根据runtimes/linux-x64/lib/net8.0筛选artifacts/bin/runtime/net8.0-linux-Debug-x64中的dll
    • artifacts/bin/mono/linux.x64.Debug/System.Private.CoreLib.dll
  6. lib
    • artifacts/obj/mono/linux.x64.Debug/out/lib
      • libcoreclr.so
      • libmono-component-debugger-static.a
      • libmono-component-debugger-stub-static.a
      • libmono-component-diagnostics_tracing-static.a
      • libmono-component-diagnostics_tracing-stub-static.a
      • libmono-component-hot_reload-static.a
      • libmono-component-hot_reload-stub-static.a
      • libmono-component-marshal-ilgen-static.a
      • libmono-component-marshal-ilgen-stub-static.a
      • libmono-profiler-aot.a
      • libmonosgen-2.0.a
    • artifacts/bin/runtime/net8.0-linux-Debug-x64
      • libSystem.Globalization.Native.a
      • libSystem.Native.so

macOS

  1. 环境:Requirements to build dotnet/runtime on macOS
  2. 编译
    • Debug:./build.sh mono+libs
    • Release:./build.sh mono+libs -c release
  3. include
    • artifacts/bin/mono/osx.x64.Debug/include
  4. dll
  5. lib
    • artifacts/obj/mono/osx.x64.Debug/out/lib
      • libmono-component-debugger-static.a
      • libmono-component-debugger-stub-static.a
      • libmono-component-diagnostics_tracing-static.a
      • libmono-component-diagnostics_tracing-stub-static.a
      • libmono-component-hot_reload-static.a
      • libmono-component-hot_reload-stub-static.a
      • libmono-component-marshal-ilgen-static.a
      • libmono-component-marshal-ilgen-stub-static.a
      • libmono-profiler-aot.a
      • libmonosgen-2.0.a
    • artifacts/bin/mono/osx.x64.Debug
      • libcoreclr.dylib
    • artifacts/bin/runtime/net8.0-osx-Debug-x64
      • libSystem.Globalization.Native.a
      • libSystem.Globalization.Native.dylib
      • libSystem.IO.Compression.Native.dylib
      • libSystem.IO.Ports.Native.dylib
      • libSystem.Native.dylib
      • libSystem.Net.Security.Native.dylib
      • libSystem.Security.Cryptography.Native.Apple.dylib
      • libSystem.Security.Cryptography.Native.OpenSsl.dylib

Android

  1. 环境:Testing Libraries on Android
  2. 编译
    • Debug:./build.sh mono+libs -os android -arch arm64
    • Release:./build.sh mono+libs -os android -arch arm64 -c release
  3. include
    • artifacts/bin/mono/android.arm64.Debug/include
  4. dll
    • Microsoft.NETCore.App.Runtime.Mono.android-arm64,修改后缀为.zip,并解压
    • 根据runtimes/android-arm64/lib/net8.0筛选artifacts/bin/runtime/net8.0-android-Debug-arm64中的dll
    • artifacts/bin/mono/android.arm64.Debug/System.Private.CoreLib.dll
  5. lib
    • artifacts/obj/mono/android.arm64.Debug/out/lib
      • libmono-component-debugger-static.a
      • libmono-component-debugger-stub-static.a
      • libmono-component-diagnostics_tracing-static.a
      • libmono-component-diagnostics_tracing-stub-static.a
      • libmono-component-hot_reload-static.a
      • libmono-component-hot_reload-stub-static.a
      • libmono-component-marshal-ilgen-static.a
      • libmono-component-marshal-ilgen-stub-static.a
      • libmonosgen-2.0.a
      • libmonosgen-2.0.so
    • artifacts/bin/runtime/net8.0-android-Debug-arm64
      • libSystem.Native.so

IOS

  1. 环境:Testing Libraries on iOS, tvOS, and MacCatalyst
  2. 编译选项:v8.0.5-IOS
  3. 编译
    • Debug:./build.sh mono+libs -os ios -arch arm64
    • Release:./build.sh mono+libs -os ios -arch arm64 -c release
    • 拷贝artifacts/obj/mono/System.Private.CoreLib/arm64/Debug/PreTrim/System.Private.CoreLib.dllartifacts/obj/mono/ios.arm64.Debug/cross/mono/mini/mono-aot-cross
    • ./mono-aot-cross --aot=asmonly,static,interp System.Private.CoreLib.dll
    • xcrun -sdk iphoneos clang -arch arm64 -o System.Private.CoreLib.dll.o -c System.Private.CoreLib.dll.s
    • ar rcs System.Private.CoreLib.dll.a System.Private.CoreLib.dll.o
  4. include
    • artifacts/bin/mono/ios.arm64.Debug/include
  5. dll
    • Microsoft.NETCore.App.Runtime.Mono.ios-arm64,修改后缀为.zip,并解压
    • 根据runtimes/ios-arm64/lib/net8.0筛选artifacts/bin/runtime/net8.0-ios-Debug-arm64中的dll
    • artifacts/obj/mono/System.Private.CoreLib/arm64/Debug/PreTrim/System.Private.CoreLib.dll
  6. lib
    • artifacts/obj/mono/ios.arm64.Debug/out/lib
      • libmono-component-debugger-static.a
      • libmono-component-debugger-stub-static.a
      • libmono-component-diagnostics_tracing-static.a
      • libmono-component-diagnostics_tracing-stub-static.a
      • libmono-component-hot_reload-static.a
      • libmono-component-hot_reload-stub-static.a
      • libmono-component-marshal-ilgen-static.a
      • libmono-component-marshal-ilgen-stub-static.a
      • libmonosgen-2.0.a
    • artifacts/bin/runtime/net8.0-ios-Debug-arm64
      • libicudata.a
      • libicui18n.a
      • libicuuc.a
      • libSystem.Globalization.Native.a
      • libSystem.Globalization.Native.dylib
      • libSystem.IO.Compression.Native.dylib
      • libSystem.Native.dylib
      • libSystem.Net.Security.Native.dylib
      • libSystem.Security.Cryptography.Native.Apple.dylib
    • artifacts/obj/mono/ios.arm64.Debug/cross/mono/mini/mono-aot-cross
      • System.Private.CoreLib.dll.a
  7. Framework
    1. 新建IOS-Framework
    2. Product填写Mono
    3. Language选择Objective-C
    4. 不勾选Include TestsInclude Documentation
    5. Minmum Deployments选择14.0
    6. Build Settings-Library Search Paths-Debug选择*dylib目录
    7. Build Phases-Link Binary With Libraries添加*dylib
    8. General-Frameworks and Libraries-Embed选择Embed & Sign
    9. Build选择Any IOS Device(arm64)
    10. File-Project Setting-Advanced-Custom选择Relative to Workspace
    11. Build/Products/Debug-iphones新建Mono.embeddendframework文件夹,拷贝Mono.frameworkMono.embeddendframework,压缩Mono.embeddendframework