System.Runtime 引用 .net 标准时找不到程序集 class 库

System.Runtime Assembly not found when referencing .net standard class library

希望有人能够提供帮助。

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

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

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

我尝试在项目中直接引用 System.Runtime Nuget 包,但仍然没有。 经过一些 investigation/hacking 之后,我发现如果我从 Nuget 包中复制(正确的)System.Runtime.dll 并将其手动粘贴到 bin 中,所有内容都会加载。

然后我创建了一个 post 构建事件,找到并复制了丢失的 dll 到 bin,但 dll 仍然被排除在我们的部署包之外。

有没有办法像我的其他依赖项一样在构建期间将所需的 dll 输出到 bin 目录?

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

我遇到了完全相同的问题——我浪费了大约 5 个小时来尝试修改配置文件和 NuGet 包,结果让我很懊恼的是 System.Runtime.DLLSystem.Runtime.Extensions.DLLbin 目录中不存在。

有什么突破我会回信

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

{
  "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 添加引用,我不再出现装配错误。我也能够 link 这个 PCL 进入我的 .NET Core 1.0 应用程序。

希望这对您有所帮助。