Nuget软件包无法解析的版本

时间:2018-11-27 22:22:49

标签: c# nuget nuspec

我收到内部开发的Nuget软件包的警告(在我的项目中被视为错误)。我不确定自己在做什么错-根据文档,1.0.0.13 >= 1.0.0应该解决。

我收到的警告/错误:

NU1603 MyPackage.Services 1.0.0.13 depends on MyPackage.Base (>= 1.0.0) but MyPackage.Base 1.0.0 was not found. An approximate best match of MyPackage.Base 1.0.0.13 was resolved.

MyPackage.Services.nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>MyPackage.Services</id>
    <version>1.0.0</version>
    <authors>Me</authors>
    <owners>Me</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>My Package Description</description>
    <copyright>Me - 2018</copyright>
    <dependencies>
      <dependency id="MyPackage.Base" version="1.0.0" />
      <!-- ... -->
    </dependencies>
  </metadata>
</package>

谢谢

1 个答案:

答案 0 :(得分:1)

警告消息所述

  

解决了MyPackage.Base 1.0.0.13的最佳匹配问题。

因此已解决。但是,通过选择将警告视为错误,您要求它破坏构建。

由于您拥有MyPackage.Services,因此可以将其对MyPackage.Base的依赖关系更改为一个实际存在的版本,以停止收到此警告。其他选择是停止将NU1603视为警告,或者可能完全取消它。

正如马丁·乌尔里希(Martin Ullrich)在问题的评论中所说,在某些情况下,开发人员确实关心恢复的版本超出了预期。实际上,对于某些客户来说是如此重要,以至于最近添加了new feature来提高恢复包的安全性(请参阅最近的npm事件流问题)。这使NuGet警告NU1603的用处不大,但是它存在的时间比软件包锁定的时间长得多。