目前,我有一个 C++/CLI 包装器项目,它引用了一些 OpenCV dll。然后,我创建的 C# 库项目引用了包装器项目。
使用 Costura,包装器在我的 C# 库中正确合并,但 OpenCV dll 没有被合并(因为它们没有被我的 C# proj 直接引用,并将本地复制设置为 true)。
我将所有 OpenCV 程序集放入costura64
位于项目根目录中的文件夹中,并将Unmanaged64Assemblies
包含所有必需 OpenCV dll 的元素添加到 weavers xml 中,但无济于事。
我还IncludeAssemblies
使用所有必需的 OpenCV dll 将元素添加到 Weavers xml,这会在构建时导致错误:
MSBUILD:错误:Fody/Costura:找不到程序集“成像”(即使是 CopyLocal='false'),请更新配置
我的 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 Action
.Embedded Resource
对于将 OpenCV 程序集合并到我的 C# 库项目中所需的任何帮助,将不胜感激。