我已经通过Nuget将ServiceStack.Redis添加到我拥有的程序集中.该包依赖于ServiceStack.Common,它依赖于ServiceStack.Text
这个项目是从我的web项目中引用的,但是当我构建网站并在浏览器中加载它时,我得到了错误
无法加载文件或程序集'ServiceStack.Text,Version = 3.9.24.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.
果然,当我进入我网站的Bin目录时,它不在那里.奇怪的是,如果我进入我引用的类库的Bin目录(我将Nuget包拉入的那个)它就在那里.
回顾一下
我很难过.有谁知道为什么?
注意:该错误似乎在寻找版本3.9.24,但Nuget的版本是3.9.26.如果我手动将它移动到Web/Bin它可以工作
检查 .csproj 文件中的程序集引用属性,也许它们仍在引用旧版本的 ServiceStack.Text。有时我发现 NuGet 在包更新过程中的某个时刻会失败,并使程序集引用处于错误状态。例如,您的packages.config文件可能正确显示所有 ServiceStack 引用都具有相同的版本号,但您的.csproj文件可能引用3.9.24forServiceStack.Common和3.9.26for ServiceStack.Text. 因此,它会将这些程序集的不同版本复制到您的 bin 目录中。它可能仍然可以成功构建,因为您在 NuGet 包目录中缓存了 ServiceStack.Common 的旧副本。
我通过手动编辑 .csproj 文件以获得正确的程序集路径和版本号,或者通过 NuGet 卸载并重新安装受影响的包来修复此问题(这可能需要重新安装大多数/所有 ServiceStack 包,因为 ServiceStack.Text 是这样的低级依赖。
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |