将多个项目打包到一个NuGet包中

时间:2017-05-11 16:35:15

标签: c# nuget nuget-spec .net-standard

我正试图绕过NuGet包系统。最近我发布了一个NuGet类库,仅针对.NET Framework 4.5.2,但是根据需求,我决定创建一个面向.NETStandard 1.4的新类库。

这是我迷路的地方。我可以在一个NuGet包中定位多个框架,这个场景有两个不同的项目吗?

删除.NET Framework 4.5.2项目并将其替换为我的.NETStandard 1.4项目是否合理?代码是100%相同。

在这种情况下导航的任何建议或最佳做法?

1 个答案:

答案 0 :(得分:0)

如果您需要支持.NET Framework 4.5.2,则需要按照compatibility matrix将.NET Standard的版本降低到1.2,因为.NET Standard 1.4软件包只能用于。 NET Framework 4.6.1 +。

如果您无法做到这一点,则可以对项目进行多目标定位,以便为.NET Standard .NET Framework版本构建相同的项目,并将其打包到同一个NuGet包中。引用该包的.NET Framework项目将优先于同一包中的.NET Standard dll上的.NET Framework dll。

您可以通过从

更改.NET Standard项目来完成此操作
<TargetFramework>netstandard1.4</TargetFramework>

<TargetFrameworks>net452;netstandard1.4</TargetFrameworks>

通过将属性更改为TargetFrameworks(复数),项目现在将构建两次 - 每个指定的框架一次。