Отсутствуют ссылки на сборку и / или директивы "Не удалось найти имя типа или пространства имен" - PullRequest
0 голосов
/ 24 марта 2019

Ссылка на это руководство по Azure Cosmos Db (https://docs.microsoft.com/en-us/azure/cosmos-db/create-mongodb-dotnet),, выпущенное три месяца назад и, видимо, уже устаревшее.

Я следовал инструкциям: клонировал файлы примеров приложений, обновил строку подключения, установилMongoDB.Driver через диспетчер пакетов Nuget и запустил приложение. Сборка (в Visual Studio 2017) не удалась из-за нескольких ошибок CS0246 и CS0234 в 2 файлах приложения. См. скриншот

here

Я не разработчик C #. Я подозреваю, что либо API-интерфейс MongoDB изменился, либо MongoDB.Driver устарел. Ошибка означает, что директива или ссылка на сборку отсутствуют.

В любом случае, это проблема в основных файлах приложения, которые были написаны Microsoft, а не мной. Смотрите скриншот здесь. У кого-нибудь есть какие-либо рекомендации о том, как я могу устранить эти ошибки и успешно запустить приложение? Может быть, мне нужноустановить старую устаревшую версию MongoDB.Driver?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Спасибо за ваш отзыв.Это проблема в файле csproj.На что тянуть запрос уже был поднят.Вы можете обратиться к запросу на проверку, чтобы проверить ETA для этого исправления.

https://github.com/Azure-Samples/azure-cosmos-db-mongodb-dotnet-getting-started/pull/8

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

0 голосов
/ 28 марта 2019

Я скачал пример приложения с https://github.com/Azure-Samples/azure-cosmos-db-mongodb-dotnet-getting-started/archive/master.zip, и в настоящее время оно действительно находится в противоречивом состоянии, и оно должно быть исправлено MS.

Проблема

Ссылки проекта, которые не могут быть найдены:

enter image description here

Причина в том, что Nuget спрашиваютзагрузить MongoDB.BSon 2.6.1, но ссылки на проекты ищут в папках 2.3.0.

    <Reference Include="MongoDB.Driver, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\MongoDB.Driver.2.3.0\lib\net45\MongoDB.Driver.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="MongoDB.Driver.Core, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\MongoDB.Driver.Core.2.3.0\lib\net45\MongoDB.Driver.Core.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="MongoDB.Driver.Legacy, Version=2.3.0.157, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\mongocsharpdriver.2.3.0\lib\net45\MongoDB.Driver.Legacy.dll</HintPath>
      <Private>True</Private>
    </Reference>

Я сообщил о проблеме в MS, вы можете отследить ее здесь: https://github.com/MicrosoftDocs/azure-docs/issues/28204

Исправление

Вы могли бы подождать, пока MS исправит это - или исправит поврежденные ссылки самостоятельно:

  1. Удалите недопустимые ссылки сборки MongoDB. *.
  2. Прочитал ссылки из папок, которые nuget скачал:
    • .. \ packages \ MongoDB.Bson.2.6.1 \ lib \ net45 \ MongoDB.Bson.dll
    • .. \ packages \ MongoDB.Driver.2.6.1 \ lib \ net45 \ MongoDB.Driver.dll
    • .. \ packages \ MongoDB.Driver.Core.2.6.1 \ lib \ net45 \ MongoDB.Driver.Core.dll
  3. Компиляция для проверки

Вы также можете упростить описанный выше процесс, просто открыв файл MyTaskListApp.csproj и сделав там правки:

<Reference Include="MongoDB.Bson">
  <HintPath>..\packages\MongoDB.Bson.2.6.1\lib\net45\MongoDB.Bson.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Driver">
  <HintPath>..\packages\MongoDB.Driver.2.6.1\lib\net45\MongoDB.Driver.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Driver.Core">
  <HintPath>..\packages\MongoDB.Driver.Core.2.6.1\lib\net45\MongoDB.Driver.Core.dll</HintPath>
</Reference>
...