Nuget 包还原使用错误的源并在 Visual Studio for Mac 中失败

问题描述 投票:0回答:2

我最近将 Xamarin 项目转移到新的 MacBook 上,以便将所有内容更新到最新的 iOS 版本。我正在使用 Visual Studio for Mac 2022。

此项目使用 Grial UI(版本 3)和 Telerik for Xamarin Forms,需要配置自定义 Nuget 源。

我遇到了两个问题:

  1. 来源告诉我,添加它们时我有“无效凭据”,即使它们是正确的,并且我可以在选择来源时浏览包。
  2. 尝试恢复包时,它使用 Nuget.org 而不是正确的源。这是它得到的一个错误:

无法找到包 UXDivers.Grial。源中不存在具有此 id 的包:nuget.org

它应该使用我添加的自定义 Grial Nuget 源,而不是 nuget.org。

数字 1. 可能不是问题,但可能表明其他配置错误,但 2 让我根本无法构建项目,因为未使用这些引用。

我还尝试使用 Nuget 包管理器更新包,它成功检测到当前版本和可用版本,但由于同样的原因失败(在进行实际更新时使用了错误的源)。

关于如何解决这个问题有什么建议吗?我的 Nuget 源在我的旧版(2015 年中)Mac 上以完全相同的方式配置,并且它正在与 VS for Mac 2019 配合使用。

xamarin.forms xamarin.ios visual-studio-mac visual-studio-mac-2022
2个回答
1
投票

我也有同样的问题。在我的 MacBookAir 上一切正常(2022 年 11 月购买),现在我从工作中得到了一台 MacBookPro。我安装了所有内容,但是当运行我的 Xamarin 项目时,恢复项目总是失败。

在包控制台输出中,我发现唯一使用的提要是

https://api.nuget.org/v3/index.json

幸运的是,我随机找到了微软文档的链接。 (https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior)。我检查了 MacBookPro 和 MacBookAir 上的 NuGet.config 文件。错误就出现了。我不知道为什么,但是当我将 grial-resource 添加到 nuget 源时,它没有更新我的 NuGet.config 文件。

所以我的 NuGet.config 文件看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <packageSources>
      <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
   </packageSources>
</configuration>

在我的 MacBookAir 上看起来是这样的

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="grial" value="http://nuget.uxdivers.com/grial" />
  </packageSources>
  <packageSourceCredentials>
    <grial>
        <add key="Username" value="yourUsername" />
        <add key="ClearTextPassword" value="yourPassword" />
    </grial>
  </packageSourceCredentials>
</configuration>  

为了解决我的 MacBookPro 上的问题,我将 grial 源添加到文件中,保存并重新启动 VSforMac。现在我可以在我的两台 MacBook 上构建我的项目了。


0
投票

我的最后步骤是这样的

  1. dotnet nuget locals --清除所有(多次执行此操作)

  2. dotnet nuget locals --list all(列出所有 nuget 位置,转到这些位置并删除)

  3. dotnet 恢复项目(甚至平台项目)

毕竟,包恢复仍然会转到较旧的 Telerik 服务器(您必须之前检查包控制台,我这样做了,但还不够)

检查此项 - 使用的 NuGet 配置文件:

/Users/"YOUR_USERNAME"/.config/NuGet/NuGet.Config

ufeff

您将看到“使用的源:”在那里,您将看到错误的 nuget 源, ufeff

不在“/Users/”YOUR_USERNAME”/.nuget/NuGet

ufeff

从“ /Users/"YOUR_USERNAME"/.config/NuGet/NuGet.Config”中删除不需要的 nuget 源

ufeff

项目构建!!!

有关更多详细信息,请在 Microsoft

中查看
© www.soinside.com 2019 - 2024. All rights reserved.