在4.5.2中使用.netstandard 1.2库

时间:2016-11-30 20:21:57

标签: c# .net-core

我创建了一个.netstandard 1.2库,它与.net 4.5.2兼容。 在我的图书馆中,我引用了NetStandard.Library 1.6:

{
    "version": "1.0.0-*",
    "dependencies": {
        "NETStandard.Library": "1.6.1"
    },

    "frameworks": {
        "netstandard1.2": { }
    }
}

我使用dotnet包创建了一个NuGet包,并将其安装在我的NuGet服务器上。我创建了一个针对.NET Framework 4.5.2的简单控制台应用程序。我尝试安装上面的NuGet包,然后得到一个需要安装的大量依赖项列表:

Microsoft.NETCore.Platforms.1.1.0
System.Collections.4.3.0
System.Collections.Concurrent.4.3.0
... snip
NETStandard.Library.1.6.0
MyPackage.1.0.0

我假设我看到所有这些软件包的原因是因为我依赖于元数据包NETStandard.Library,但是有没有办法将它安装到一个完整的.net框架4.5.2项目中而没有得到所有这些包添加?我是否应该将框架net452添加到我的库中,即使我没有需要执行任何条件编译?

1 个答案:

答案 0 :(得分:5)

如果仔细查看,System.Collections包不应包含.net完整框架的任何DLL。我相信它只是将System.Collections引用为框架引用。你仍然得到几乎空的nuget包,因为你依赖于NETStandard.Library包,并定义了实现库所需的各种api。额外的包实际上不应该在完整的框架上做任何事情。

如果它困扰你(对我来说它没有)你可以通过更明确地了解你的依赖关系来绕过它。

例如:

{
    "version": "1.0.0-*",

    "frameworks": {
        "net452" : {},
        "netstandard1.2": { 
         "dependencies": {
          "NETStandard.Library": "1.6.1"
         },
       }
    }
}