【问题标题】:error CS0234: The type or namespace name 'OAuth' does not exist in the namespace 'Microsoft.Owin.Security' (are you missing an assembly reference?)错误 CS0234:命名空间“Microsoft.Owin.Security”中不存在类型或命名空间名称“OAuth”(您是否缺少程序集引用?)
【发布时间】:2019-02-17 21:15:26
【问题描述】:

我正在尝试使用 cli 构建一个项目:

msbuild.exe project.sln

我收到这种类型的错误:

App_Start\NinjectConfig.cs(3,31): error CS0234: The type or namespace name 'OAuth' does not exist in the namespace 'Microsoft.Owin.Security' (are you missing an assembly reference?) [path_to_file\file.csproj]

我试过nuget restor 此外,我的项目文件夹的根目录中有 packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45 和 Microsoft.Owin.Security.OAuth.dll 文件的包。

在file.csproj我有一个参考:

<Reference Include="Microsoft.Owin.Security.OAuth">
<HintPath>..\..\packages\Microsoft.Owin.Security.OAuth.2.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>

我可以看到版本的差异,但有两个问题: 1)为什么视觉工作室正在构建这个没有错误?为什么它可以与 vs 一起使用,但不能与 cli 一起使用? 2)为什么nuget安装了错误的版本? 3) 如何从 nuget 的配置中导出以安装所有软件包?

我是新手 - 请温柔一点。

【问题讨论】:

  • 如果您在 .csproj(提示路径中为 2.1.0)和 packages.config(可能使用 3.0.1)中存在冲突设置,MSBuild 和 VS 可能有自己处理引用的方式。你没有透露所有必要的信息,所以我认为没有人能说出来。您可能会尝试删除有关该引用的所有内容并稍后将其添加回来,以使所有内容保持同步。然后再次编译,看看错误是否消失。

标签: c# .net msbuild visual-studio-2017 nuget


【解决方案1】:

1) 为什么 Visual Studio 没有错误地构建它?为什么它适用于 vs 而不适用于 cli?

由于我们没有您的项目/解决方案,我们无法弄清楚 Visual Studio 构建时没有出现错误的原因。但是如果你解决了后两个问题,你就不会对这个问题感到困惑了。

2) 为什么nuget安装了错误的版本?

使用nuget restore 命令行时,NuGet 不会将项目安装到项目文件中。此命令行只是下载并安装包文件夹中缺少的任何包,因此当您使用该命令行时,它不会更改file.csproj 中的nuget 包版本,它只是下载包Microsoft.Owin.Security.OAuth.3.0.1并根据nuget.config文件设置到\packages文件夹,不会检查项目文件中的HintPath。这也是为什么您可以在项目文件夹的根目录中看到 nuget 包的原因。

但是file.csproj中的路径和版本不正确(不知道原因,可能是不小心手动改了或者其他原因),应该是:

<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>

单个..\,版本为3.0.1。

所以,要解决这个问题,我们应该重新安装 nuget 包而不是恢复它。您可以卸载它并重新安装该软件包。

3) 如何从 nuget 的配置中导出以安装所有软件包?

您的项目中有一个packages.config 文件,您可以使用Visual Studio 中的包管理器控制台安装所有包,但您无法使用nuget CLI 安装所有包。因为包管理器控制台提供的是对 Visual Studio 对象的访问。

查看another thread了解更多详情。

希望这会有所帮助。

【讨论】:

  • 其实帮助很大,TNX。
猜你喜欢
  • 2019-03-19
  • 2017-05-01
  • 2020-12-17
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多