ошибка CS0234: тип или имя пространства имен «OAuth» не существует в пространстве имен «Microsoft.Owin.Security» (отсутствует ссылка на сборку?) - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь построить проект с 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>

Я могуувидеть различия в версиях, но есть 2 вопроса: 1) почему Visual Studio строит это без ошибок?Почему это работает с VS, но не с Cli?2) Почему Nuget устанавливает неправильную версию?3) Как я могу экспортировать из vs конфиг для nuget, чтобы установить все пакеты?

Я новичок - так что будьте осторожны, пожалуйста.

1 Ответ

0 голосов
/ 18 февраля 2019

1) Почему Visual Studio строит это без ошибок?Почему это работает с vs, но не с cli?

Поскольку у нас нет вашего проекта / решения, мы не могли выяснить причину, по которой Visual Studio строится без ошибок.Но если вы решите последние две проблемы, вы не будете смущены этой проблемой.

2) Почему Nuget устанавливает неправильную версию?

NuGet не устанавливает проектв файл проекта при использовании командной строки nuget restore.Эта командная строка просто загружает и устанавливает любые пакеты, отсутствующие в папке пакетов , поэтому она не меняет версию пакета nuget в file.csproj при использовании этой командной строки, она просто загружает пакет Microsoft.Owin.Security.OAuth.3.0.1 иустановите его в папку \packages на основе файла nuget.config, он не будет проверять HintPath в файле проекта.Это также причина, по которой вы можете увидеть пакет nuget в корневом каталоге папки вашего проекта.

Однако путь и версия неверны в file.csproj ( Не могу знать причину,может быть случайно изменен вручную или по другим причинам ), это должно быть:

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

Single ..\ и версия 3.0.1.

Итак, чтобы решить эту проблему, мы должны переустановить пакет nuget вместо его восстановления.Вы можете удалить его и переустановить эти пакеты.

3) Как я могу экспортировать из конфигурации для Nuget для установки всех пакетов?

Существует packages.configфайл в вашем проекте, вы можете установить все пакеты с помощью диспетчера пакетов в Visual Studio, но вы не смогли установить все пакеты с помощью nuget CLI.Поскольку консоль диспетчера пакетов предоставляет доступ к объектам Visual Studio.

Проверьте другой поток для получения дополнительной информации.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...