在.NET 4.6项目中使用.NET Stanard Library构建库

时间:2016-08-25 15:24:30

标签: .net .net-standard .net-4.6

有一些项目:

  • 针对.NET标准库的Library LibA
  • 针对.NET Framework 4.6的应用程序Proj46
  • Applicatoin ProjC,面向.NET Core 1.0

LibA做了一些事情:

public static class Foo
{
    public static void Bar()
    {
        using (var f = new FileStream("test.txt", FileMode.Create, FileAccess.Write))
            Thread.Sleep(1);
        ThreadPool.QueueUserWorkItem(new WaitCallback((a) => { }));
    }
}

因此它需要依赖

  • NETStandard.Library
  • System.Threading.ThreadPool
  • System.Threading.Thread

LibA project.json:

{
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "System.Threading.ThreadPool": "4.0.10",
    "System.Threading.Thread": "4.0.0"
  },
  "frameworks": {
    "netstandard1.3": { }
  }
}

Proj46使用LibA:

LibA.Foo.Bar();

运行时出现FileNotFoundException:'文件或程序集" System.IO.FileSystem,Version = 4.0.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"找不到'。为了工作,我必须将所有依赖项添加到Proj46。

是否可以使用.NET标准库构建LibA,而无需将其所有依赖项安装到任何上游项目? AFAIK .NET46实现了.NETStandard1.3。因此,不应该要求它作为依赖。

编辑:

Complete solution to reproduce

在添加nuget包" NETStandard.Library"," System.Threading.Thread"之后,例外消失了。和" System.Threading.ThreadPool"到Proj46。

0 个答案:

没有答案
相关问题