簡體   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