.net NuGet找不到包的版本

.net NuGet找不到包的版本,.net,nuget,.net,Nuget,运行命令 nuget.exe restore .\MySolution.sln 给出此错误: 找不到包“Microsoft.Net.Compilers”的版本“1.0.0” 以前安装并还原过该软件包,但不知何故它已损坏。结果只是通过 nuget.exe update -self 从2.8.0更新到3.4.4就足够了,软件包现在可以正确恢复。我也遇到了同样的问题,但我需要继续使用nuget.exe2.8,因为无法升级我们构建服务器上安装的.NET Framework版本(2.8是最后一个仍然可

运行命令

nuget.exe restore .\MySolution.sln
给出此错误:

找不到包“Microsoft.Net.Compilers”的版本“1.0.0”


以前安装并还原过该软件包,但不知何故它已损坏。

结果只是通过

nuget.exe update -self

从2.8.0更新到3.4.4就足够了,软件包现在可以正确恢复。

我也遇到了同样的问题,但我需要继续使用
nuget.exe
2.8,因为无法升级我们构建服务器上安装的.NET Framework版本(2.8是最后一个仍然可以使用.NET 4.0的版本)

原因是
nuget.config
只指向V3API。解决方案是添加v2api。比如说,

<configuration>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="nuget v2" value="https://www.nuget.org/api/v2" />
  </packageSources>
</configuration>

在我们的例子中,我们将Visual Studio中的NuGet扩展从3.3.x升级到了3.4.4


您可以在菜单工具中找到更新→ 扩展和更新→ 更新→ Visual Studio Gallery。

在我的例子中,我已将NuGet升级到最新版本,但仍然出现错误

然后我在解决方案根文件夹中找到了它→ 'packages'文件夹,其中有
repositories.config
,打开该文件,您将看到正在使用的所有
packages.config

<repository path="..\Common\Luna.Common\packages.config" />
<repository path="..\Common\Luna.ComponentBehaviors\packages.config" />
<repository path="..\Common\Luna.Data\packages.config" />
<repository path="..\Common\Luna.WPF.ApplicationFramework\packages.config" />
<repository path="..\GuyWire\Luna.Basic.GuyWire\packages.config" />

因为事实上我是一个文件一个文件地引用DLL文件,所以我不需要使用NuGet。我删除了
packages.config
文件,然后错误就解决了。

我的问题是,我将“包源”设置为我自己的特定NuGet服务器,而不是所有服务器。

我也面临着同样的问题,但您的所有答案对我都没有帮助

然后,我发现我的时钟被延迟了(那天我换了电脑),我没有意识到这一点

这个简单的修正使它一切正常。 软件包版本确实存在,但因为它被认为是在“未来”,NuGet给出了这个错误,即找不到版本x.x.x


我认为这是一个巨大的错误,因为它不在乎包裹的时间。如果您有一个版本列表,那么它发布的日期和时间并不重要。

因为我最近多次遇到这个问题,下面是我的解决方案:

  • 转到
    C:\Users\\AppData\Roaming\NuGet\
  • 打开
    NuGet.config
  • 中添加
    。在我的例子中,它是一个指向
    \\JENKINS\nuGet存储库的网络文件夹
  • 因此,它看起来应该与此类似:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <packageRestore>
            <add key="enabled" value="True" />
            <add key="automatic" value="True" />
        </packageRestore>
        <packageSources>
            <add key="local" value="\\JENKINS\nuGet Repository" />
            <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
            <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
        </packageSources>
        <disabledPackageSources />
        <activePackageSource>
            <add key="All" value="(Aggregate source)" />
        </activePackageSource>
    </configuration>
    

    我可以通过使用以下命令重置NuGet缓存/索引来解决此问题:

    dotnet nuget locals --clear all
    
    之后,我成功地恢复了我的包:

    dotnet restore
    

    对我来说,解决问题的方法是在解决方案文件夹中运行以下命令:

    nuget restore -NoCache -NonInteractive
    

    如果使用
    dotnet cli
    并基于,则可以使用带有一些选项的
    dotnet restore
    命令,例如
    -f
    --无缓存
    ,以及
    --忽略故障源

    dotnet restore -f --no-cache --ignore-failed-sources
    

    使用此命令.NET Core不会在缓存包中搜索。

    我使用的是自动Mac构建,就像您无法升级
    nuget
    一样,这修复了我的错误。谢谢我同意他们应该包括一些与错误条件相关的信息。这并不是说该包在该版本下不存在,而是它已经过时了!在Ubunutu上也很有用(使用dotnet core 3.1)。是否“全部”都是文字?是的,当然是。解释是什么?它为什么有效?或者只是:它应该做什么?在我的例子中,更新到5.6.0有帮助
    dotnet restore -f --no-cache --ignore-failed-sources