【问题标题】:Searching for wrong version of assembly?搜索错误版本的程序集?
【发布时间】:2014-09-15 17:59:15
【问题描述】:

我正在尝试让 .net 4.0 的异步 nuget 包工作,但它似乎不起作用。我已经卸载了软件包,重新启动了 VS 2013,现在重新安装了大约 10 次。我试过手动复制文件并右键单击添加>添加现有。

这是我每次都会收到以下错误的事情......

无法加载文件或程序集 'Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。系统找不到指定的文件。

所以由于某种原因它正在寻找版本 1.0.12 但我只安装过版本 1.0.168 (最新)所以我不知道为什么它会寻找版本 12 而我找不到此设置的位置。我尝试了 packages.config 文件,但它在 1.0.168

版本中正确列出了它

什么鬼!?我怎么能告诉它寻找版本 1.0.168 !请帮帮我!

【问题讨论】:

  • 为什么我的帖子总是被编辑?我故意把包的全名放在帖子里,你为什么一直删除它?请停下来。

标签: c# .net-4.0 visual-studio-2013 async-await nuget-package


【解决方案1】:

这通常发生在 packages.config 出现问题时。过去在我身上发生过几次。只需检查您的 packages.config 并确保其定义与您需要的版本匹配。

如果 packages.config 不是问题,您可以尝试:

  1. 从解决方案中删除 nugget(右键单击解决方案并单击管理 nugget 包以获取解决方案)并重新安装。
  2. 更新所有项目中的 nugget 包以需要相同版本的程序集。也许另一个项目依赖于旧版本。
  3. 如果您在项目中的引用是错误的版本,则首先卸载 nugget,然后从项目中删除引用,然后尝试重新安装 nugget,或手动引用正确的程序集。

我还忘了提到你也可以删除 packages.config 中的条目,但这不是一个好的解决方案(除非你 100% 确定你只会从一个程序集中使用这个库),因为它会导致问题当您的解决方案中的不同项目需要引用该程序集时。

【讨论】:

  • 已经这样做了……上面说了。它在 packages.config 和 .csproj 文件中显示版本 1.0.168。你知道其他地方可以检查吗?
  • 抱歉,我在阅读您的问题时错过了这一点。
  • 我也试过卸载和重新安装...好几次了。此外,该软件包未安装在我的解决方案中的任何其他项目上。调试器实际上列出了哪个项目引发了异常,并且它是我正在处理的项目,而不是另一个项目。
  • 于是我找到了列出 1.0.12 版本的位置。在解决方案资源管理器 > 参考下,单击属性工具箱中 Microsoft.Threading.Tasks 的参考,我看到版本号为 1.0.12,但它是灰色的,我无法更改它。想法?
  • 已经试过了。当您卸载 nuget 时,它会自动删除引用。如果我手动删除它们,然后手动将其重新添加...猜猜看,仍然是 1.0.12 版本...它从来没有要求我选择一个版本,VS 2013 会自行填写,然后不会让你改变它
【解决方案2】:

我遇到了类似的问题,VS 坚持使用特定版本,该版本不再可用。 恢复和重建似乎没有帮助。

最后,我选择了msbuild dirs.proj,这为我解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多