gpt4 book ai didi

c# - 如何为多个目标框架构建解决方案?

转载 作者:行者123 更新时间:2023-11-30 16:40:17 24 4
gpt4 key购买 nike

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

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

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

现在,我们需要我们的类库同时针对 .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 make 本质上是向后兼容的,因此您始终可以使用目标版本低于消费库/项目目标版本的库。 从技术上讲,您也可以定位低于该值的任何版本,包括 3.5,但您为什么要这么做。

这也适用于 .Net Core 和 .Net Standard,但组合很快就会叠加。如果库以 .Net Standard 1.0 为目标,那么它可以被以任何版本的 .Net Standard >= 1.0、任何版本的 .Net Core >= 1.0 和任何版本的 .Net Framework >= 4.5.2 为目标的项目使用。看看 docs on .Net Standard了解详情。

有关 .Net Standard 的更多详细信息,请查看 this blog post from Daniel Crabtree

关于c# - 如何为多个目标框架构建解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com