Nuget包问题
问题描述:
我从来没有结束与Nuget的问题。但是,要清楚的是,这不会发生在另一台PC上..只有我的。Nuget包问题
所以我的nuget包之一拉System.IO.FileSystem
。
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net461" />
默认情况下它拉在4.0.1
版本,但由于某些原因,库期待版本4.0.0.0
,这将引发异常
抛出异常:“System.IO.FileLoadException”在mscorlib.dll
其他信息:无法加载文件或程序集 'System.IO.FileSystem,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其某个依赖项ES。位于程序集清单定义中的 与程序集 的引用不匹配。 (异常来自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>
谁能帮忙?
FYI我有这个设置在项目文件
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
答
我还没有足够的信誉发表评论,所以我很抱歉,因为这可能不是一个答案。 既然你提到“只在你的机器上”,我认为Nuget包本身没有问题,所以我的“答案”更多地关注与你的环境/机器有关的事情。
-
您正在使用在你指的是包中的DLL(S)的参考路径:
,如果您验证? 这可能是参考路径使用的是旧版本,即正在寻找版本4.0
您的bin \ ...文件夹仍然保留旧的(er)版本该DLL(s)?
您的GAC坚持一个旧版本的DLL(s)?
(不太可能,因为它似乎只在你的机器上)项目中的其他软件包或引用的DLL仍然需要版本4.0?
接下来从Gregg的帖子下面,当您将'dependentAssembly'元素添加到App.config?时,您收到了什么确切的错误。格雷格的评论中的第四名竟然是几周前我偶然发现的Package-Hell的原因。 – ColinM