【发布时间】: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