Nuget包问题

时间:2017-02-13 14:47:03

标签: c# nuget system.reflection

我永远无法解决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>

1 个答案:

答案 0 :(得分:2)

我还没有足够的声誉发表评论,所以我道歉,因为这可能不是一个答案。 既然你只提到你的机器上,我就不会认为Nuget包本身存在问题,所以我的答案是&#39;我们更关注与您的环境/机器相关的事情。

您是否验证过:

  1. 您正在使用您所指的包中的DLL的引用路径? 可能是参考路径使用旧的(呃)版本,即寻找版本4.0

  2. 您的bin \ ...文件夹是否还在保留旧的(呃)DLL版本?

  3. 您的GAC是否持有旧的(呃)DLL版本?

  4. (不太可能,因为它似乎只在你的机器上)项目中的其他软件包或引用的DLL仍然需要4.0版本?