【发布时间】:2018-07-30 11:40:35
【问题描述】:
我们目前有一个针对 .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.5.2 的代码使用,也可以被以后的任何东西(包括 4.6.2)使用,只针对你可以获得的最早版本远离。
-
@phuzi 奇怪的是,这似乎是不可能的,因为开发该库的系统在某些版本中至少需要 4.6.2,而在其他版本中至少需要 4.5.2。
-
认为您错过了重点。我可以编写一个面向 .Net Framework 4.7.2 的应用程序并使用一个面向 .Net Framework 4.0 的库。只要您的类库面向 4.5.2,您的应用就可以面向 4.5.2 或更高版本
-
啊,好的,我试试看,完成后再回来。
-
@phuzi 我采用了你的方法,它对我有用。有点尴尬,我自己无法弄清楚这一点,但是嘿,这就是这个社区的用途吗?如果您提供您的评论作为答案,我很乐意接受,因为这解决了我的问题。
标签: c# .net nuget azure-devops azure-artifacts