【发布时间】:2016-12-08 14:40:12
【问题描述】:
运行命令
nuget.exe restore .\MySolution.sln
给出这个错误:
找不到包“Microsoft.Net.Compilers”的版本“1.0.0”。
以前安装和恢复软件包的位置,但不知何故损坏了。
【问题讨论】:
运行命令
nuget.exe restore .\MySolution.sln
给出这个错误:
找不到包“Microsoft.Net.Compilers”的版本“1.0.0”。
以前安装和恢复软件包的位置,但不知何故损坏了。
【问题讨论】:
结果证明只是通过
更新 NuGet 版本nuget.exe update -self
从 2.8.0 更新到 3.4.4 就足够了,现在包可以正确恢复了。
【讨论】:
我能够在 macOS 上解决此问题,使用以下命令重置我的 NuGet 缓存/索引:
dotnet nuget locals --clear all
之后我能够成功恢复我的包:
dotnet restore
【讨论】:
我遇到了同样的问题,但我需要继续使用nuget.exe 2.8,因为无法升级安装在我们构建服务器上的 .NET Framework 版本(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>
【讨论】:
nuget 这解决了我的错误。谢谢!
因为我最近多次偶然发现这个问题,所以这是我的解决方案:
C:\Users\<User>\AppData\Roaming\NuGet\
NuGet.config
<packageSources> 中添加<add key="keyName" value="path to repository">。在我的情况下,它是一个指向\\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>
【讨论】:
如果使用dotnet cli并基于this document,您可以使用带有一些选项的dotnet restore命令,例如-f、--no-cache和--ignore-failed-sources:
dotnet restore -f --no-cache --ignore-failed-sources
使用此命令,.NET Core 不会在缓存的包中搜索。
【讨论】:
我遇到了同样的问题,但你所有的答案都没有帮助我。
然后,我发现我的时钟延迟了(那天我换了电脑),我没有意识到这一点。
这个简单的更正使它一切正常。 包版本确实存在,但因为它被认为是“未来”,NuGet 给出了无法找到版本 x.x.x 的错误。
我认为这是一个巨大的错误,因为它不在乎包裹的时间。如果您有版本列表,则发布日期时间并不重要。
【讨论】:
对我来说,解决问题的方法是在解决方案文件夹中运行以下命令:
nuget restore -NoCache -NonInteractive
【讨论】:
在我们的例子中,我们将 Visual Studio 中的 NuGet 扩展从 3.3.x 升级到了 3.4.4。
您可以在菜单工具 → 扩展和更新 → 更新 → Visual Studio 库 中找到更新。
【讨论】:
在我的情况下,我已将我的 NuGet 升级到最新版本,但仍然出现错误。
然后我发现,在Solution Root Folder → 'packages'文件夹,里面有repositories.config,打开文件,你会看到所有@正在使用的987654322@:
<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文件,然后错误就解决了。
【讨论】:
我的问题是我将“包源”设置为我自己的特定 NuGet 服务器而不是全部。
【讨论】:
清除 Nuget 缓存对我有用。
要从 Visual Studio 执行此操作,只需打开 工具 -> 选项 -> Nuget 包管理器 -> 常规,然后单击按钮 Clear All Nuget Cache(s)
【讨论】: