使用nuget的陷阱

2021-06-22 17:41:29 字數 766 閱讀 9472

今天測試quartz時,因為引用的順序不對,或者說因為nuget自動新增待引用庫所依賴的庫的機制,導致的問題。

我引用的順序是:

1、新增quartz的引用,如圖

因為quartz依賴於common.logging.dll所以nuget自動引用了common.logging.dll,但版本是2.1.2。

2、因為當前環境.net4.0所以不好引用common.logging.log4net,所以引用common.logging.log4net1211。

同樣因為common.logging.log4net1211依賴log4net,所以nuget自動引用了log4net。

nuget的這種做法非常便捷,可以省去不少事情,但同時卻也會導致一些問題的存在。

在上述情況下,編譯時編譯器會報warning msb3277警告,google一番後無果,隱約覺得程式會有問題。果然不出所料,

程式報出異常argumentoutofrangeexception(以前是configurationexception,為啥?)。

導致這種異常出現的原因就是common.logging.dll版本不對導致。

調整新增引用的順序為 common.logging => common.logging.log4net1211 => quartz,問題搞定。

i am always so jizhi.

NuGet的簡單使用

nuget 讀作new get 是用於微軟.net開發平台的軟體包管理器,是乙個visual studio的擴充套件。在使用visual studio開發基於.net framework的應用時,nuget能夠令你在專案中新增 移除和更新引用的工作變得更加快捷方便。通過nuget你可以很容易的訪問到...

NuGet的簡單使用

nuget 讀作new get 是用於微軟.net開發平台的軟體包管理器,是乙個visual studio的擴充套件。在使用visual studio開發基於.net framework的應用時,nuget能夠令你在專案中新增 移除和更新引用的工作變得更加快捷方便。通過nuget你可以很容易的訪問到...

NuGet的簡單使用

nuget 讀作new get 是用於微軟.net開發平台的軟體包管理器,是乙個visual studio的擴充套件。在使用visual studio開發基於.net framework的應用時,nuget能夠令你在專案中新增 移除和更新引用的工作變得更加快捷方便。通過nuget你可以很容易的訪問到...