c# - 如何为多个目标框架构建解决方案?
问题描述
我们目前有一个类库.NET 4.6.2
,它具有一些通过 nuget 解析的依赖项(SDK 类)。
该类库所需的所有 SDK 程序集都可用于多个目标平台(例如4.6.2
,4.5.2
等)。
我们正在使用 VSTS 来构建库并将其打包/推送到私有 NuGet 提要。
现在,我们需要我们的 Class-Library 来定位.NET 4.5.2
以及.NET 4.6.2
因为我们有一个使用这个库定位的项目.NET 4.5.2
(不,不幸的是升级它的目标是没有选择的)
所以最重要的问题是:有没有办法为这两个多重目标框架构建解决方案?
到目前为止我尝试了什么:
- 进行了很多研究,但这个问题似乎并不常见(或者在这种特殊情况下我无法正确地使用谷歌搜索)
- 尝试了构建变量,但这似乎也没有减少它
我还考虑过某种用于解析和操作所有文件的脚本packages.config
,*.csproj
但我想这根本不是最佳实践。
解决方案
拥有可供针对不同版本 .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 的这篇博文
推荐阅读
- python -
while uploading large file via remote webdriver - html - 有什么方法可以在导航器中预览 .msg 文件?
- groovy - sed command won't replace my string when executed form Jenkins
- tsql - TSQL - struggling with simple where condition
- angular - PrimeNG 多选 onItemClick 在更新到 7 后不起作用
- r - 如何在 rstudio 中使用 stargazer 修复“if (nchar(text.matrix[r, c]) > max.length[real.c]) { : 缺少 TRUE/FALSE 的值”中的错误?
- python - 使用 tensorboard 进行 keras 训练可视化
- javascript - SummernotedirtyForm
- vegan - ordiplot3d 颜色按治疗/类别
- java - Spring boot:带占位符的属性文件