有一些项目:
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) => { }));
}
}
因此它需要依赖
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。