运行此命令
nuget.exe restore .\MySolution.sln
给出了这个错误:
Unable to find version '1.0.0' of package 'Microsoft.Net.Compilers'.
先前已经安装并恢复了软件包,但它已经以某种方式损坏了。
答案 0 :(得分:44)
简单地通过
更新Nuget版本nuget.exe update -self
从2.8.0更新到3.4.4就足够了,现在包正确恢复。
答案 1 :(得分:11)
我遇到了同样的问题,但由于无法升级我们的构建服务器上安装的.NET Framework版本,我需要继续使用nuget.exe
2.8(2.8是仍可使用的最后一个版本。 NET 4.0)。
原因是nuget.config
仅指向v3 API。解决方案是添加v2 API。例如
<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>
答案 2 :(得分:3)
我能够使用以下命令在MacOS上解决此问题,以重置我的Nuget缓存/索引:
dotnet nuget locals --clear all
之后,我能够成功还原我的软件包:
dotnet restore
答案 3 :(得分:2)
因为我最近偶然发现了这多次,所以这是我的解决方案:
C:\Users\<User>\AppData\Roaming\NuGet\
NuGet.config
<add key="keyName" value="path to repository">
中添加<packageSources>
。在我的情况下,它是指向\\JENKINS\nuGet Repository
因此应该看起来与此类似:
<?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>
答案 4 :(得分:2)
如果使用dotnet cli
并基于this document,则可以将dotnet restore
命令与某些选项一起使用,例如-f
,--no-cache
和{{ 1}}:
--ignore-failed-sources
使用此命令.NET Core不会在缓存的程序包中搜索。
答案 5 :(得分:1)
在我们的案例中,我们将VS中的Nuget扩展从3.3.x升级到3.4.4。
您可以在工具菜单中找到更新 - &gt;扩展程序和更新 - &gt;更新 - &gt; Visual Studio Gallery。
答案 6 :(得分:1)
就我而言,我已将Nuget升级到最新版本,但仍然出现错误。
然后我发现在Solution Root Folder > 'packages' folder
中有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" />
是他们存储信息1.0.0
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Iesi.Collections" version="3.1.0.4000" targetFramework="net40" />
<package id="log4net" version="2.0.3" targetFramework="net40" />
<package id="NHibernate" version="1.0.0" targetFramework="net40" />
<package id="uNhAddIns" version="1.0.0" targetFramework="net40" />
</packages>
因为实际上我是按文件引用dll,所以不需要Nuget,所以我删除了packages.config
文件,然后错误解决了。
答案 7 :(得分:1)
我遇到了同样的问题,但是您的所有回答都没有帮助我。 然后,我发现我的时钟被延迟了(那天更换了计算机),但我没有意识到这一点。
此简单的更正使其正常工作。 该软件包的版本确实存在,但是由于它被认为是在“未来”版本,因此Nuget给出了此错误,即找不到x.x.x版本。
我认为这是一个巨大的错误,因为它并不关心软件包的时间,如果您有版本列表,发布的日期时间并不重要。
答案 8 :(得分:1)
对我来说,解决问题的方法是在解决方案文件夹中运行以下命令:
nuget restore -NoCache -NonInteractive
答案 9 :(得分:0)
我的问题是我将“包源”设置为自己的特定Nuget服务器而不是“全部”。