【问题标题】:Error "dotnet : Could not find any project in `C:\**." when running "dotnet add package Microsoft.AspNetCore.Authentication.MicrosoftAccount"错误“dotnet:在 `C:\** 中找不到任何项目。”运行“dotnet 添加包 Microsoft.AspNetCore.Authentication.MicrosoftAccount”时
【发布时间】:2019-09-27 10:56:11
【问题描述】:

我有 Visual Studio 2019,并创建了一个新的 asp.net core 2.2 项目。现在我按照这些步骤Configure Microsoft Account Authentication 启用外部登录到我们的 Web 应用程序。但是当我运行这个命令时:-

dotnet 添加包 Microsoft.AspNetCore.Authentication.MicrosoftAccount

我收到了这个错误:-

PM> dotnet 添加包 Microsoft.AspNetCore.Authentication.MicrosoftAccount dotnet:可以 在C:\Users\*****\source\repos\MSlogintest\ 中找不到任何项目。在 行:1 字符:1 + dotnet 添加包 Microsoft.AspNetCore.Authentication.MicrosoftAccount + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (找不到 ...\MSlogintest`.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 用法:dotnet add package [options]

参数:要操作的项目文件。如果一个 未指定文件,该命令将搜索当前目录 一个。要添加的包引用。

选项:-h、--help 显示命令行帮助。 -v, --version 要添加的包的版本。 -f, --framework 仅在针对特定框架时添加引用。 -n, --no-restore
添加引用而不执行恢复预览和兼容性 查看。 -s, --source NuGet 包源 在还原期间使用。 --package-directory 的 要将包还原到的目录。 --交互式
允许命令停止并等待用户输入或操作(例如 完成认证的示例)。

如下:-

当我访问该文件夹时,我发现有一个VS项目文件夹,如下:-

那么为什么错误说它找不到任何项目? 任何人都可以就这个错误提出建议吗? 谢谢

【问题讨论】:

  • 您在解决方案文件夹中,而不是项目文件夹中。降低一个级别(例如cd MSlogintest),然后重试。
  • 或者dotnet add MSlogintest package Microsoft.AspNetCore.Authentication.MicrosoftAccount,在package之前提供项目名称。
  • @DavidG 你的意思是我需要在 Nuget 命令行中运行cd MSlogintest 吗?我从来没有在 Nuget 命令行中更改目录...以及为什么官方 MS 文档链接中没有提到这一点
  • 如果您从屏幕截图所示的同一位置执行此操作,它应该可以工作。如果您先执行了建议的cd MSlogintest,则需要使用您原来的dotnet add package Microsoft.AspNetCore.Authentication.MicrosoftAccount 命令。
  • 我认为您正在混合文档中的两组说明。它说要么使用内置的“管理 NuGet 包”“.NET Core CLI”。它还声明在您的项目目录中执行以下操作,但我明白为什么这可能有点令人困惑。如果您感觉强烈,您可以在文档页面本身提出问题。

标签: asp.net .net authentication asp.net-core .net-core


【解决方案1】:

cd 进入你想要添加包的特定项目并再次输入你的 dotnet 命令

> cd project Directory
> dotnet add package Microsoft.AspNetCore.Authentication.MicrosoftAccount

【讨论】:

    【解决方案2】:

    在 powershell(无 IDE)上运行。解决方案隐藏在 cmets 中的某个地方,但这是一个简单的解决方案:

    dotnet add <project> package <packageName>

    在这种情况下,我相信它会是:

    dotnet add ContosoUniversity package Microsoft.AspNetCore.Authentication.MicrosoftAccount

    【讨论】:

    • 按照上述说明解决
    • 有点奇怪,当命令在项目目录中运行时,这个项目的东西没有被隐式应用。
    【解决方案3】:

    您可能在 nuget 网站上单击了错误的选项卡。确保选择包管理器选项卡。当您单击 .net cli 选项卡并在包管理器控制台窗口中使用它时,会发生错误。

    【讨论】:

      【解决方案4】:

      有同样的问题,当我摆弄 nuget 命令行时,它有时建议我应该使用提升的权限重试。 具体来说,我尝试在文件夹结构中手动将其指向更深一层。 (根据 DavidG 的建议)

      我想:好吧,很奇怪,但我没有好主意,所以让我们试试那个。

      以管理员身份重启,工作正常。

      它起作用了,我的意思是它只是起作用了,不涉及手动摆弄。我只是使用了图形包管理器选项,该选项以某种方式可用。

      所以我最好的猜测是我在安装 Visual Studio 时搞砸了一些东西。因为我已经尝试过创建一个新项目。

      Nuget option as admin

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题并找到了解决方法。首先,完整并仔细阅读错误信息。它说:

        “找不到任何项目....”

        这意味着它正在等待项目信息。如果您进一步仔细观察该消息,它已经提到了该命令的正确用法,即

        用法:dotnet add package [options]

        在参数中,输入您的项目名称并再次运行它。这一次,您应该会看到类似于以下内容的成功消息:

        信息:将包“Microsoft.xxxxxxxx.xxxxxxxx”的 PackageReference 添加到项目“C:\Users\xxx\source\repos\ProjectFolder\xxxxxxxx.csproj”中。

        【讨论】:

        • 这个答案(和错误消息)似乎表明“dotnet add”以某种方式想要将一个库添加到项目中。这对我来说没有意义 - 我想在全球范围内添加一个库。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-16
        • 2022-07-12
        • 2020-03-19
        • 2021-07-17
        • 2018-05-25
        • 1970-01-01
        • 2022-07-26
        相关资源
        最近更新 更多