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