如何在 Visual Studio 中使用 OpenCV Nuget 包发布我的 C# 项目?

费利佩

我已经使用 windows 窗体和 C# 开发了一个 opencv 应用程序。

我从 Nuget 包管理器(EMGU.CV 和 ZedGraph)获得的 opencv 包。

在visual studio中一切正常,但是当我发布项目并在我的机器上安装程序时,当我单击执行一些opencv操作的按钮时,它会引发异常。

我猜最终发布的项目没有附带opencv包,那么发布时如何使其导出,我认为这将是一个自动化过程,我已经使用了其他nuget包并且我没有问题它。

我在这里缺少什么?

费利佩

经过几天等待答案并寻找解决方案后,我已经找到了解决此问题的方法。

我遇到了这个问题:“Emgu.CV.CvInvoke”的类型初始值设定项抛出异常

这让我想到了这个:http : //www.emgu.com/wiki/index.php/Download_And_Installation#The_type_initializer_for_.27Emgu.CV.CvInvoke.27_threw_an_exception

更准确地说,这部分:

在此处输入图片说明

首先,我不知道为什么编译在visual studio环境中运行良好,为什么在发布项目时不能正常运行。出于某种原因,Nuget 包不足以发布项目,您需要自己手动添加 .dll 文件(不确定为什么我以前使用过 Nuget 包时会发生这种情况,并且不需要此解决方法)。

要查找 .dll 文件,请转到项目目录,然后转到 bin\Debug\x64 或 bin\Debug\x86(取决于您的目标操作系统 - 32 位或 64 位 - 在我的情况下,我添加了所有x86 文件夹中的 .dll 文件,如果有疑问,我想您可以从两个文件夹中添加)。

每次在 Visual Studio 环境中运行项目时,都会生成项目的 Debug 文件夹,因此如果您的 Debug 文件夹为空,那么您只需要运行一次项目即可在该文件夹中找到自动生成的文件。顺便说一句,你可以使用bin中的Debug或Release文件夹,只要记住检查你是在Debug模式下编译项目的Debug文件夹,还是Release模式下的Release文件夹,否则所需的文件夹将为空,如前所述,我发现生成的文件之间没有差异,我添加了 Debug\x86 中的 dll 文件。

在此处输入图片说明

找到 .dll 文件后,转到 Visual Studio,右键单击解决方案资源管理器选项卡中的项目,然后添加 ---> 现有项目。

在此处输入图片说明

转到 .dll 文件所在的文件夹,全选并单击添加。

在此处输入图片说明

完成此操作后,.dll 文件将显示在解决方案资源管理器中。

在此处输入图片说明

右键单击解决方案资源管理器中添加的每个 .dll 文件,然后单击属性打开属性选项卡。在“属性”选项卡上,转到“复制到目录”选项并将该字段更改为“始终复制”(上面提供的 emgu 文档链接指出使用选项“如果更新则复制”,但为了确保我选择“始终复制”,它工作正常为我)。对添加的所有 .dll 文件重复该过程。

在此处输入图片说明

现在您已准备好按原样发布项目,请记住每次在发布项目之前都执行此操作以查看是否缺少 .dll 文件,因此一旦您获得程序的最终版本,请运行它,然后确保检查 .dll 文件,它可能需要添加或删除新文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio(C#)中使用WebView功能

如何在Visual Studio中使用Bower(从nuget安装)?

如何在Visual Studio的发布后事件中使用msbuild?

如何在C ++中使用julia语言(Visual Studio)

如何在Visual Studio 2013的C ++项目中编译和链接Google测试,但如何使用NuGet软件包管理器安装的Gtest进行链接?

如何在Visual Studio 2013中使用NuGet 3.0?

NuGet发布后,如何在Visual Studio Team Services上更新NuGet包?

Visual Studio查找未使用的nuget包

如何使用Visual Studio 2017创建Nuget程序包

如何在Visual Studio中调试nuget包

如何在Visual Studio 2015中使用NuGet 4.x?

Visual Studio如何在内核模式驱动程序项目中使用C ++标准库?

使用Visual Studio 2017的Azure Function项目的NuGet包还原失败

如何在Visual Studio解决方案的部署中使用nuget包

如何在Visual Studio中使用“参数”运行C程序

如何使用Yarn而不是Npm发布Visual Studio Angular项目?

如何在Visual Studio项目中更改NuGet程序包引用以使用Nuget.config

在Visual Studio C ++项目中使用cusp

如何在Visual Studio Team Services中发布和访问nuget程序包

如何从Visual Studio C ++项目中使用RTMPDump?

如何在Visual Studio 2015中更新我的C ++项目以使用新的Universal CRT?

我应该如何使用新的类库nuget包设计我的Visual Studio解决方案

如何防止UWP项目在每个Visual Studio会话上还原NuGet包?

在Visual Studio中使用libuv编译简单的C ++项目

如何找出我在 Visual Studio 2017 中使用的 c# 项目类型?

无法将 Google Test NuGet 包添加到 Visual Studio Linux C++ 项目

如何将 Nuget 包添加到我的 Visual Studio 扩展中的项目?

如何使用 Visual Studio for Mac 将图标 url 添加到我的 Nuget 包

如何在 Visual Studio 2019 中使用 C#10