gpt4 book ai didi

c# - 将 OpenCV 程序集与 Costura 合并时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:48 25 4
gpt4 key购买 nike

目前,我有一个 C++/CLI 包装器项目,它引用了一些 OpenCV dll。然后,我创建的 C# 库项目引用包装器项目。

使用 Costura,包装器正确地合并到我的 C# 库中,但 OpenCV dll 没有合并(因为它们没有被我的 C# proj 直接引用,并将复制本地设置为 true)。

我将所有 OpenCV 程序集放入位于项目根目录的 costura64 文件夹中,并添加 Unmanaged64Assemblies 元素,其中列出了所有必需的 OpenCV dll 到编织器中xml 无效。

我还将 IncludeAssemblies 元素添加到 Weavers xml 中,其中包含所有必需的 OpenCV dll,这会在构建时导致错误:

MSBUILD : error : Fody/Costura: Assembly 'Imaging' cannot be found (not even as CopyLocal='false'), please update the configuration

我的 Weavers XML 如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<Weavers>
<Costura>
<IncludeAssemblies>
Imaging
msvcp100d
msvcp110d
msvcr100d
opencv_core247
opencv_core247d
opencv_highgui247
opencv_highgui247d
opencv_imgproc247
opencv_imgproc247d
PvAPI
</IncludeAssemblies>
<Unmanaged64Assemblies>
Imaging
msvcp100d
msvcp110d
msvcr100d
opencv_core247
opencv_core247d
opencv_highgui247
opencv_highgui247d
opencv_imgproc247
opencv_imgproc247d
PvAPI
</Unmanaged64Assemblies>
</Costura>
</Weavers>

所有程序集目前都有一个 Build ActionEmbedded Resource

如果我需要将 OpenCV 程序集合并到我的 C# 库项目中,请提供任何帮助。

最佳答案

Unmanaged64Assemblies block 应该包含 C++/CLI 包装程序集。

这个名字有点误导,它实际上是一个混合模式程序集的列表。即使它们在未在此处列出时已正确嵌入,也确实需要在此处列出它们才能使依赖链一直工作到 native 库。

native 库不需要添加到该列表中,它们不是程序集,只需将它们放在 costura64 文件夹中并将它们标记为嵌入式资源就足够了。

关于c# - 将 OpenCV 程序集与 Costura 合并时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com