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

Visual studio 如何在Visual Studio中使用OpenCV Nuget包发布我的C#项目?,visual-studio,opencv,nuget,nuget-package,Visual Studio,Opencv,Nuget,Nuget Package,我使用windows窗体和C#开发了一个opencv应用程序 我从Nuget软件包管理器(EMGU.CV和ZedGraph)获得的opencv软件包 在VisualStudio中一切正常,但当我发布项目并在计算机中安装程序时,当我单击执行某些opencv操作的按钮时,它会引发异常 我猜opencv软件包并没有随最终发布的项目一起提供,所以我如何在发布时将其导出,我认为这将是一个自动化的过程,我已经使用了其他nuget软件包,我对此没有任何问题 我在这里遗漏了什么?在等待答案并寻找解决方案的几天后

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

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

在VisualStudio中一切正常,但当我发布项目并在计算机中安装程序时,当我单击执行某些opencv操作的按钮时,它会引发异常

我猜opencv软件包并没有随最终发布的项目一起提供,所以我如何在发布时将其导出,我认为这将是一个自动化的过程,我已经使用了其他nuget软件包,我对此没有任何问题


我在这里遗漏了什么?

在等待答案并寻找解决方案的几天后,我找到了解决这个问题的方法

我遇到了一个问题:

这让我想到了这一点:

更确切地说,这一部分:

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

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

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

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

转到.dll文件所在的文件夹,选择“全部”,然后单击“添加”

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

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

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