【问题标题】:Could not load file or assembly 'System.Collections.Immutable' but i don't have any references to it无法加载文件或程序集“System.Collections.Immutable”,但我没有对它的任何引用
【发布时间】:2020-03-19 12:48:09
【问题描述】:

我使用的是 V16.4.1,该项目的目标是 .NET Framework 4.7.1

我有一个包含多个项目的解决方案,除了出现上述错误的项目之外,这些项目都运行良好。我搜索了该项目,但找不到任何使用它的引用,以防万一,我将 dll 添加到我的引用中。我搜索了整个解决方案,以防我通过另一个项目引用它,但在任何地方都没有引用它

我尝试删除 bin 和 obj 文件夹。清理并重建了项目,但我每次都遇到同样的错误。

编辑:项目可以构建,只有在我尝试调试时才会发生这种情况

bin\roslyn\csc.exe 抛出异常

无法加载文件或程序集'System.Collections.Immutable, 版本=1.2.3.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a' 或 它的依赖项之一。系统找不到指定的文件。

【问题讨论】:

  • 您是否引用了任何 nuget 包?
  • 可能是另一个库在引用它,你依赖什么库?
  • @MattEvans 不,仅限本地 dll
  • 即第三方 dll?用反射器检查它们,看看它们引用了什么。
  • 嗯 - 看起来反射器现在是付费的。 Dotpeek 是免费的:jetbrains.com/decompiler

标签: c# .net visual-studio roslyn


【解决方案1】:

我用

Visual Studio Professional 2019 版本 16.7.6 / 预览版:16.8.0 预览版 4

当我从头开始编译时(即删除 bin/obj 目录),我发现许多使用 .net 框架的“旧”项目存在同样的问题。

编译器没有识别出运行时需要这个包,解决方法是在bin目录下复制DLLSystem.Collections.Immutable.dll的请求版本(本例为1.2.3.0)强>

您可以在 packages.config 文件中添加这一行来下载它:

<package id="System.Collections.Immutable" version="1.2.3.0" targetFramework="net471" />

但还是需要手动复制bin目录下的.dll。

或者用 Nuget 添加包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多