在未安装 mono 的客户端机器上启动我们的应用程序是可行的。但是如果安装了单声道,应用程序无法在同一台机器上启动,并出现以下错误
未处理的异常:System.TypeInitializationException:“GLib.Marshaller”的类型初始化程序引发了异常。---> System.TypeInitializationException:“Sys”的类型初始化程序引发了异常。---> System.EntryPointNotFoundException:SystemNative_LChflagsCanSetHiddenFlag 程序集:类型:成员:(空)
用于创建应用程序的 mkbundle 命令
mkbundle -v -o appname --simple --keeptemp appname.exe --config ./config --machine-config /etc/mono/4.5/machine.config
config 从 /etc/mono 复制并修改以删除特定于位置的信息。
似乎发生的情况是应用程序加载了已安装的单声道实例,该实例与应用程序打包的版本不同,并且找不到符号。
有没有办法阻止 mkbundled 应用程序加载已安装的单声道,而是始终依赖捆绑版本?