我正在构建将最终在Azure下运行的ASPNET核心/ EF核心/ MVC 6网站。我遇到了一个涉及依赖DLL的奇怪问题,这是我从未遇到过的。System.IO.Compression DLL丢失和可能的版本冲突
该解决方案由许多项目组成。其中有几个通过ZipArchive操作zip文件,所以它们依赖于System.IO.Compression。该解决方案编译没有问题。
但是,System.IO.Compression DLL未被复制到最终的bin目录,这自然导致该站点在试图访问该程序集中的例程时崩溃。
我通过手动将System.IO.Compression.dll复制到最终的bin目录来“解决”了该问题。该网站在我的开发系统上运行良好。
但是,当我将网站发布到Azure时,System.IO.Compression.dll未部署,并且尝试访问缺少的程序集时Azure站点崩溃。
我不确定是否可以手动将缺少的DLL复制到Azure,但如果我可以,我想这是一种解决方案。
但是,这一切都感觉很糟糕,就像我失去了一些东西。
于是我回去查看每个项目的参考资料,发现有些奇怪的东西。
在一个“子公司”项目 - ConnellData - 显示引用显示,正如所料,依赖于System.IO.Compression,v4.1.0。
但是,当我查看依赖于ConnellData的“main”项目,并展开ConnellData的引用时...... System.IO.Compression有一个依赖关系,但它是用于版本4.0.10。
我不知道这是否与缺少DLL问题有关,但似乎可能。
任何想法或建议如何解决这个问题将不胜感激。
据我所知,如果你发现DLL丢失并上传到Azure。这将有助于解决问题。然而重要的是修复dll冲突。 –