我永远无法解决Nuget的问题。但是,要清楚,这不会发生在另一台PC上......只有我的。
所以我的一个nuget包拉入了System.IO.FileSystem
。
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net461" />
默认情况下,它会引入版本4.0.1
,但由于某种原因,库需要版本4.0.0.0
并且抛出此异常
抛出异常:&#39; System.IO.FileLoadException&#39;在mscorlib.dll中
其他信息:无法加载文件或程序集 &#39; System.IO.FileSystem,Version = 4.0.0.0,Culture = neutral, 公钥= b03f5f7f11d50a3a&#39;或其中一个依赖项。该 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
好的,所以不是很好,但谷歌让其他人遇到问题,所以我在我的App.config
添加了绑定重定向,从而继续疯狂......
所以这不起作用:
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="4.0.1.0" />
</dependentAssembly>
所以我试过这个,这也行不通:
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="4.0.1" />
</dependentAssembly>
有人可以帮忙吗?
仅供参考我在项目文件中设置了这个
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
答案 0 :(得分:2)
我还没有足够的声誉发表评论,所以我道歉,因为这可能不是一个答案。 既然你只提到你的机器上,我就不会认为Nuget包本身存在问题,所以我的答案是&#39;我们更关注与您的环境/机器相关的事情。
您是否验证过:
您正在使用您所指的包中的DLL的引用路径? 可能是参考路径使用旧的(呃)版本,即寻找版本4.0
您的bin \ ...文件夹是否还在保留旧的(呃)DLL版本?
您的GAC是否持有旧的(呃)DLL版本?
(不太可能,因为它似乎只在你的机器上)项目中的其他软件包或引用的DLL仍然需要4.0版本?