【问题标题】:System.Runtime Assembly not found when referencing .net standard class library引用 .net 标准类库时找不到 System.Runtime 程序集
【发布时间】:2016-09-06 19:10:28
【问题描述】:

希望有人能提供帮助。

我有一组最近转换为 .NetStandard 1.3 PCL 的项目,这样做是为了让我公司的前端项目与新的移动项目 (Xamarin) 共享一个通信层。

当在我们的 WPF 项目中引用这些新的 PCL 时,一切运行正常,但是在我们的 ASP.net 项目中引用它们会导致运行时异常。 Runtime Exception

我发现这是由于在构建过程中 System.Runtime.dll 没有输出到项目的 bin 文件夹。

我已经尝试在项目中直接引用 System.Runtime Nuget 包,但仍然没有。 经过一些调查/黑客攻击后,我发现如果我从 Nuget 包中复制(正确的)System.Runtime.dll 并将其手动粘贴到 bin 中,一切都会加载。

然后我创建了一个构建后事件,发现丢失的 dll 并将其复制到 bin 中,但 dll 仍然从​​我们的部署包中排除。

在构建过程中是否可以像我的其他依赖项一样将所需的 dll 输出到 bin 目录?

我已阅读有关 .NetStandard 的文档并在 Google 上搜索过此问题,但没有找到任何有用的信息。

【问题讨论】:

    标签: asp.net .net xamarin portable-class-library .net-standard


    【解决方案1】:

    我也遇到了同样的问题——我浪费了大约 5 个小时试图修改配置文件和 NuGet 包,但让我很懊恼的是 System.Runtime.DLLSystem.Runtime.Extensions.DLL 在 @987654324 中不存在@目录。

    如果我有任何突破,我会回信。

    -- 编辑:我不知道这是否会对您有所帮助,但我决定从一开始,重新创建 PCL 项目,然后将其重新添加到解决方案中。我将 PCL 设置为目标 netstandard1.3;这是我的 PCL 的project.json

    {
      "name": "<redacted>",
      "version": "1.0.0-*",
      "supports": {
        "net46.app": {}
      },
      "dependencies": {
        "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
        "NETStandard.Library": "1.6.0",
        "Newtonsoft.Json": "9.0.1"
      },
      "frameworks": {
        "netstandard1.3": {
          "imports": "portable-net46+win8"
        }
      }
    }
    

    执行此操作后,然后通过 IDE 添加引用,我不再收到汇编错误。我还可以将此 PCL 链接到我的 .NET Core 1.0 应用程序中。

    希望这会有所帮助。

    【讨论】:

    • 附言。我发现这个工具非常有用;您可以仅查看失败的程序集绑定,然后查看加载程序在处理时尝试的确切路径列表:link
    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 2019-10-10
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多