在4.5.2中使用.netstandard 1.2库

Dis*_*ile 4 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": { }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用dotnet pack从中创建了一个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
Run Code Online (Sandbox Code Playgroud)

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

Ter*_*Dev 5

如果仔细看,System.Collections程序包不应包含.net完整框架的任何DLL。我相信,相反,它只是引用System.Collections作为框架参考。由于仍对NETStandard.Library包具有依赖关系,并且定义了实现该库所需的各种api,因此您仍然会获得几乎为空的nuget包。额外的程序包实际上不应在整个框架上执行任何操作。

如果它困扰您(对我而言,它没有),您可以通过更加明确地了解您的依赖项来解决。

例如:

{
    "version": "1.0.0-*",

    "frameworks": {
        "net452" : {},
        "netstandard1.2": { 
         "dependencies": {
          "NETStandard.Library": "1.6.1"
         },
       }
    }
}
Run Code Online (Sandbox Code Playgroud)