问题标签 [mono-embedding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
654 浏览

c# - monosgen-2.0.dll 和 libmonosgen-2.0.dll 有什么区别?

我正在尝试使用 SGen GC将 Mono 嵌入到http://www.mono-project.com/docs/advanced/embedding/c中的程序中。在单声道发行版中,有两个不同的单声道 dll 支持 SGen:C:\Program Files\Mono\bin

  • monosgen-2.0.dll,大小:3,082 KB
  • libmonosgen-2.0.dll,大小:14,801 KB

该教程说On Windows, depending on the GC implementation to be used (... SGen), you need to link your application with ... monosgen-2.0.lib,但它没有说明我必须使用什么 dll。我很困惑,因为本教程说我应该重命名libmonosgen-2.0.dllmonosgen-2.0.dll(但为什么?)。示例程序可以编译并与这两个库一起正常工作。Dependency walker 显示libmonosgen-2.0.dll导出的符号比monosgen-2.0.dll. 那么这些库之间的实际区别是什么?

0 投票
1 回答
971 浏览

mono-embedding - MonoObject 到 c++ bool

我已将单声道运行时嵌入到我的 C++ 应用程序中。C++ 代码调用一个返回布尔值的 C# 方法。

如何从返回的 MonoObject 中获取布尔值?

0 投票
1 回答
1074 浏览

c++ - 从内存中嵌入单加载程序集

我正在尝试从内存中加载单声道程序集。我的问题有两个部分,第一:当我使用mono_image_open_from_datamono_assembly_load_from组合程序集依赖项时没有加载。如果我使用相同的方法手动加载程序集依赖项,它们似乎没有添加到应用程序域中。所以它不起作用。

所以我想知道是否有任何方法可以从内存中加载这些程序集。

第二:如果可以从内存中加载程序集,是否也可以mscorlib.dll从内存中加载?mono_jit_init 尝试从库路径加载它,如果它不存在于路径中,mono 将无法初始化。有没有办法从内存中加载它?

0 投票
0 回答
330 浏览

c++ - 运行 32 位版本的 Mono Embedded

当使用 Mono 运行 C# 程序并且您想使用 32 位版本时,您只需使用mono --arch=32,但是使用 Embedded Mono 时如何做到这一点?我在官方文档中找不到任何专用功能,并且

导致 Mono 关闭Unsupported command line option: '--arch=32'

0 投票
0 回答
551 浏览

c# - 在 64 位 Linux 上运行时嵌入 32 位版本的单声道

我目前正在将 C# 插件从 Windows 移植到 Linux。在 Windows 上,插件是使用 DllExport nuget 包加载的,在 Linux 上,我希望使用 Mono 嵌入。

将使用我的插件的程序只有 32 位版本,所以无论操作系统如何,我都需要嵌入 32 位版本的 Mono。

在 64 位 Linux 上,Mono 的默认安装仅提供 x64 库,并且似乎不兼容多架构。

有没有打算在 64 位系统上嵌入 32 位 Mono 的方法?

0 投票
0 回答
200 浏览

c# - 如何从内部调用实例化泛型类,导致崩溃“无法转换线程......从 STATE_BLOCKING 和 DO_BLOCKING”

我正在嵌入单声道并尝试使用单声道 API 从内部调用实例化泛型类。

List从核心库中获取,然后List<string>通过调用创建Type.MakeGenericType。它似乎有效,但我在路上遇到了车祸。

mono_coop_cond_broadcast Cannot transition thread ... from STATE_BLOCKING with DO_BLOCKING从里面得到mono_runtime_object_init

主.cpp:

主文件:

每当我尝试调用mono_object_to_string任何MonoReflectionType*实例时,也会发生同样的崩溃(即使我不确定这是否是有效的操作)。

我究竟做错了什么?我是否纠正了强制MonoReflectionType*转换MonoObject*为有效操作?

0 投票
1 回答
93 浏览

c# - 如何为 .Net Embedding (Github Embeddinator-4000) 构建 objcgen 工具?

第五次尝试(2020 年 3 月 24 日)...

我在Mac上构建它的步骤......

这会得到“0 错误”但“找不到 shellcheck 工具”,我找不到解决方案。

而且我无法让 objcgen 与 C# 推荐的示例一起运行:

或者使用 Github > Embeddinator-4000 中的这个例子:

0 投票
1 回答
524 浏览

python - ParameterError:单声道数据必须具有形状(样本,)。收到的形状=(1, 87488721)

目前,我正在使用 pyannote 进行嵌入的 python 上的扬声器 Diarization。我的嵌入函数如下所示:

当我跑

我收到此错误:

0 投票
0 回答
345 浏览

c# - 在 Linux 上嵌入 C++ 应用程序时 Mono 运行时崩溃

背景/问题描述 我正在尝试将 c# 脚本作为我在 Debian-9 Linux 中编译的 c++ 应用程序的一部分运行。但是,我的应用程序因来自单声道运行时的错误而崩溃。

我已经从 Debian 存储库安装了单声道,甚至尝试使用从源代码编译的单声道版本进行相同的实验。c# 代码,我已经使用mcs -t:library *.cs. 尝试运行我的应用程序时,它崩溃并出现以下错误:

最小示例 C++ 代码 (main.cpp):

C# 代码(hello.cs):

CMakeLists:

我整天都在阅读不同的教程并尝试不同的事情(包括从源代码重新编译单声道),但没有任何成功。我没有嵌入单声道的经验,也不知道如何解释崩溃报告或调试它。任何帮助将不胜感激。

0 投票
1 回答
59 浏览

c# - mono_class_from_name_case 返回 nullptr

mono_class_from_name_case 返回 nullptr,我发现无法获得更多信息,而且 mono 文档非常基础。我的问题是,我想我遗漏了一些东西,是否有一种方法可以将两个程序集“链接”在一起?这甚至需要吗?为什么该类出现在元数据中但无法通过 get 类访问?
我通过元数据接口获取名称和命名空间,它们是有效的字符串。dll 编译时没有任何警告/错误。在组件的打开和元数据访问之间没有其他操作。该代码首先针对 base.dll 执行,然后针对 content.dll 执行。两者都在同一个域中,但不同的程序集和图像。

我注意到的事情:
删除 Slime 中的基类“修复”它。<- 可能缺少对 base.dll 的引用?
当基础不是抽象的/没有任何虚拟方法时,它仍然不起作用
从 mono_class_from_name_case 更改为 mono_class_from_name 具有相同的行为。

C++ 代码:

涉及的两个 DLL:

Base.dll

内容.dll