.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