我正试图绕过NuGet包系统。最近我发布了一个NuGet类库,仅针对.NET Framework 4.5.2,但是根据需求,我决定创建一个面向.NETStandard 1.4的新类库。
这是我迷路的地方。我可以在一个NuGet包中定位多个框架,这个场景有两个不同的项目吗?
删除.NET Framework 4.5.2项目并将其替换为我的.NETStandard 1.4项目是否合理?代码是100%相同。
在这种情况下导航的任何建议或最佳做法?
答案 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
(复数),项目现在将构建两次 - 每个指定的框架一次。