【问题标题】:How to smoothly upgrade the targetFramework for a NuGet package如何平滑升级 NuGet 包的 targetFramework
【发布时间】:2016-04-11 14:39:48
【问题描述】:

我有一个当前针对 .NET 4.5 的 NuGet 包。下一个版本将改为以 .NET 4.5.2 为目标。我对支持这两个框架版本没有兴趣(这些包仅在内部使用),但我确实想让消费者明白他们需要以 4.5.2 为目标。现在,NuGet 似乎允许 4.5 项目安装我的包,但它将是无操作的(因为没有为 net45 安装 DLL)。

我的问题是,我可以做些什么来改善这种体验?理想情况下,当 targetFramework 错误时,我希望安装失败。除此之外,我会接受类似错误消息之类的东西。

【问题讨论】:

  • 您是否尝试将程序集添加到 lib\net452 目录中,以便仅安装到针对 NET 4.5.2 的项目中?
  • @MattWard 默认情况下就是这样做的。但是,当我在 4.5 项目中安装该软件包时,它不会抱怨;它只是默默地无操作。
  • 这听起来像一个 nuget 错误。我不希望 nuget 允许这样做。

标签: .net nuget target-framework


【解决方案1】:

为此,您需要确保包中的所有内容都针对新版本。然后,NuGet 将失败安装并显示以下消息:

无法安装软件包“XXX”。您正在尝试安装此 打包到一个以“.NETFramework,Version=v4.5”为目标的项目中,但是 包不包含任何程序集引用或内容文件 与该框架兼容。了解更多信息, 联系包作者

我的问题是,即使我的 DLL 以 net452 为目标,我的 nuspec 文件(例如内容文件)中仍有其他元素仍以 net45 为目标。 NuGet 将此解释为我的包是多目标的,因此允许在 .NET 4.5 项目中进行安装(静默跳过添加 DLL 引用的步骤)。

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 2016-07-29
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多