首页 > 解决方案 > 如何为多个目标框架构建解决方案?

问题描述

我们目前有一个类库.NET 4.6.2,它具有一些通过 nuget 解析的依赖项(SDK 类)。

该类库所需的所有 SDK 程序集都可用于多个目标平台(例如4.6.24.5.2等)。

我们正在使用 VSTS 来构建库并将其打包/推送到私有 NuGet 提要。

现在,我们需要我们的 Class-Library 来定位.NET 4.5.2以及.NET 4.6.2因为我们有一个使用这个库定位的项目.NET 4.5.2不,不幸的是升级它的目标是没有选择的

所以最重要的问题是:有没有办法为这两个多重目标框架构建解决方案?

到目前为止我尝试了什么:

我还考虑过某种用于解析和操作所有文件的脚本packages.config*.csproj但我想这根本不是最佳实践。

标签: c#.netnugetazure-devopsazure-artifacts

解决方案


拥有可供针对不同版本 .Net Framework 的项目使用的程序集/类库非常容易。

如果您有针对 4.5.2 和 4.6.2 的项目,但您想提供一个通用库,那么您的库目标为 4.5.2。.Net 本质上是向后兼容的,因此您始终可以使用针对低于使用库/项目目标版本的库。从技术上讲,您也可以定位低于 3.5 的任何内容,但您为什么要这样做。

这也适用于 .Net Core 和 .Net Standard,但组合很快就会叠加起来。如果该库以 .Net Standard 1.0 为目标,则它可以被面向任何版本的 .Net Standard >= 1.0、任何版本的 .Net Core >= 1.0 和任何版本的 .Net Framework >= 4.5.2 的项目使用。有关详细信息,请查看.Net Standard上的文档。

有关 .Net Standard 的更多详细信息,请查看Daniel Crabtree 的这篇博文


推荐阅读