在.NET4.6项目中使用带.NETStanard库的库构建
有一些项目:在.NET4.6项目中使用带.NETStanard库的库构建,.net,.net-standard,.net-4.6,.net,.net Standard,.net 4.6,有一些项目: 以.NET标准库为目标的库LibA 针对.NET Framework 4.6的应用程序Proj46 针对.NET Core 1.0的项目应用程序 利巴做了些什么: public static class Foo { public static void Bar() { using (var f = new FileStream("test.txt", FileMode.Create, FileAccess.Write))
- 以.NET标准库为目标的库LibA
- 针对.NET Framework 4.6的应用程序Proj46
- 针对.NET Core 1.0的项目应用程序
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
- 系统线程
{
"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,而不必将其所有依赖项安装到任何上游项目?
NET46实现.NETStandard1.3。因此,不应要求将其作为依赖项
编辑:
在Proj46中添加nuget包“NETStandard.Library”、“System.Threading.Thread”和“System.Threading.ThreadPool”后,例外情况消失了。如果您提供一个。您已经向我们展示了一些部分(project.json文件中的一个,但不是另一个)和一些错误消息,但不是全部。两个C#文件和两个project.json文件—因此我们可以复制这些文件—将使事情变得更简单。(据我所知,我认为ProjC在这里不相关……)您确定您指定的是“.NETStandard1.3”而不是“NETStandard1.3”吗?我知道这不是一个框架名称……我提到ProjC只是为了完整性,为了证明目标是.NET标准。(我将提供一个示例。)当前工具已损坏。等待它的RTM构建。@LexLi很好!.NET标准的工具是否包含在“.NET Core 1.0.0 SDK”中?github上有问题吗?NET内核是1.0 RTM,但它的SDK以及其他工具都是Preview 2。认为这是一个巨大的障碍,每个人都应该谨慎。我个人建议等待工具RTM,而不是在互联网上寻找各种解决方法。如果你能提供一个。您已经向我们展示了一些部分(project.json文件中的一个,但不是另一个)和一些错误消息,但不是全部。两个C#文件和两个project.json文件—因此我们可以复制这些文件—将使事情变得更简单。(据我所知,我认为ProjC在这里不相关……)您确定您指定的是“.NETStandard1.3”而不是“NETStandard1.3”吗?我知道这不是一个框架名称……我提到ProjC只是为了完整性,为了证明目标是.NET标准。(我将提供一个示例。)当前工具已损坏。等待它的RTM构建。@LexLi很好!.NET标准的工具是否包含在“.NET Core 1.0.0 SDK”中?github上有问题吗?NET内核是1.0 RTM,但它的SDK以及其他工具都是Preview 2。认为这是一个巨大的障碍,每个人都应该谨慎。我个人建议等待工具RTM,而不是在互联网上寻找各种解决方法。