簡體   English   中英

.Net找不到Nuget程序包所需的引用依賴項

[英].Net not finding referenced dependency required by Nuget package

我們最近設置了本地nuget服務器,以改善對項目中依賴項的處理。 為了打包和推送我們的庫,我們在Visual Studio中使用“新”項目格式,並使用一個名為NuPack-Nuget Packager的市場附加組件。

然后,用於開發的工作流程將創建一個新項目並提取所需的依賴項。

現在,我們在所有工作場所都出現了奇怪的行為。

例如。 我們有2個庫:LibA(版本1.1.0)和LibB(版本2.5.0),其中LibB依賴LibA並將其引用為項目參考。 我的項目通過Nuget引用LibB(版本2.5.0)。

當我更改LibB(現在為2.5.1版)並將其推送到我們的Nuget並更新我的項目中的引用時,一切似乎都可以正常工作,該項目會構建並且沒有錯誤,但是在運行時,一旦執行了引用LibA的代碼(仍然是版本1.1.0,未進行任何更改)我收到FileNotFound異常:程序集LibA,程序集版本1.1.0未找到。

目前唯一的解決方法是將新的LibA打包為1.1.1版(不更改代碼),並將其推送到nuget服務器,並將項目中的引用更新為1.1.1版。

有人知道原因/解決方案嗎?

編輯不能解決問題的事物:

  • 清理/重建解決方案(既不是依賴關系也不是項目)
  • Update-Package-在軟件包管理器命令行中重新安裝
  • 清除Nuget緩存並還原所有依賴項
  • 手動刪除和讀取項目中的nuget參考

編輯確切的錯誤信息(程序集名稱已更改)

System.IO.FileNotFoundException:'無法加載文件或程序集'Lib.A.Namespace.1.1,Version = 1.1.7,Culture = neutral,PublicKeyToken = null'。 Das System kann die angegebene Datei nicht finden。”

最后一部分的翻譯:“找不到文件”

編輯所有依賴項都被編譯為NetStandard2.0的AnyCPU

問題已確定。 NuPack-Nuget Packager在這里“有毛病”。 對於將來絆腳石的任何人:

我們的問題是NuPack-Nuget包裝機的工作方式。 盡管工作流程似乎很方便(設置Assemblyversion,設置輸出dir,設置nuget服務器,完成),但將不會為包部署而構建項目,因此該項目依賴於先前的構建,該內部仍保留先前的AssemblyVersion。

在發現我們已經刪除了過時的引用(位於User / .Nuget / Packages文件夾中)之后,我們終於找到了解決方案。

我們尚未為構建,打包和部署提供最終的一步式解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM