無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

曾經在拿取檔案的時候發生過這個問題

我不清楚究竟是版本的問題還是(應該不是版本的問題,因為我從我的夥伴手中拿它可以跑的程式,修改Config後仍然有問題)

主要的問題可能是因為package的問題,時常因為package跟參考以及nuget和WebConfig有不同而出現版本問題

遇到上述問題的話可能都要檢查以上三個檔案

建議是直接複製查詢 然後把「你認為不該存在的」參考給移除。

我自己本人是只留下參考中的檔案,是會把package和WebConfig的依賴給註解後再使用nuget重新安裝。


題外話抱怨

package.Config貌似就是參考的引入,但是不知道為啥連那邊都會跟參考互相衝突,微軟真的不打算修一下逆?


補充說明:


比如說遇到這個錯誤

上面有寫明說

Newtonsoft.Json

culture = neutral

publicKeyToken = 30ad4fe6b2a6aeed

version = 6.0.0.0

就可以在web.config中寫這段加入

 <dependentAssembly>

   <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>

   <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>

 </dependentAssembly>

oldVersion - 那些版號要對應 - 可以用 - 來包含版號區間。

注意,newVersion不代表一定比oldVersion高。換句話說也有可能高版本全部要用低版本的dll(不過這種情景比較少 ,因為一般都是高版本會向下兼容)


不過這種方法不太建議,一律建議使用最上面的方法

參考 http://shaurong.blogspot.com/2020/02/systemiocompression.html

留言

這個網誌中的熱門文章

MongoDB 入門

javascript 更改屬性及創建標籤