我有一个当前针对 .NET 4.5 的 NuGet 包。下一个版本将改为以 .NET 4.5.2 为目标。我对支持这两个框架版本没有兴趣(这些包仅在内部使用),但我确实想让消费者明白他们需要以 4.5.2 为目标。现在,NuGet 似乎将允许 4.5 项目安装我的包,但它将是无操作的(因为没有为 net45 安装 DLL)。
我的问题是,我能做些什么来改善这种体验?理想情况下,当 targetFramework 错误时,我希望安装失败。除此之外,我会接受类似错误消息的东西。
我有一个当前针对 .NET 4.5 的 NuGet 包。下一个版本将改为以 .NET 4.5.2 为目标。我对支持这两个框架版本没有兴趣(这些包仅在内部使用),但我确实想让消费者明白他们需要以 4.5.2 为目标。现在,NuGet 似乎将允许 4.5 项目安装我的包,但它将是无操作的(因为没有为 net45 安装 DLL)。
我的问题是,我能做些什么来改善这种体验?理想情况下,当 targetFramework 错误时,我希望安装失败。除此之外,我会接受类似错误消息的东西。
为此,您需要确保包中的所有内容都针对新版本。然后,NuGet 将失败安装并显示以下消息:
无法安装软件包“XXX”。您正在尝试将此包安装到以“.NETFramework,Version=v4.5”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请联系包作者
我的问题是,即使我的 DLL 以 net452 为目标,我的 nuspec 文件(例如内容文件)中有其他元素仍然以 net45 为目标。NuGet 将此解释为我的包是多目标的,因此允许在 .NET 4.5 项目中进行安装(默默地跳过添加 DLL 引用的步骤)。