繁体   English   中英

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

[英]How to publish my C# project using OpenCV Nuget packages in Visual Studio?

我使用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

更确切地说,这部分:

在此输入图像描述

首先,我不知道为什么编辑在视觉工作室环境中运行良好,为什么不在发布项目时。 出于某种原因,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,在Solution Explorer选项卡中右键单击该项目,然后单击Add ---> Existing Item。

在此输入图像描述

转到.dll文件所在的文件夹,选择all并单击Add。

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

现在您已准备好按原样发布项目,只记得在发布项目之前每次都这样做,看看是否缺少.dll文件,所以一旦你到达程序的最终版本,运行它,然后确保检查.dll文件,它可能有新的要添加或删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM