缺少程序集引用和/或指令“找不到类型或名称空间名称”

时间:2019-03-24 19:25:25

标签: c# mongodb visual-studio-2017 azure-cosmosdb azure-cosmosdb-mongoapi

请参阅三个月前发布的此Azure Cosmos Db教程(https://docs.microsoft.com/en-us/azure/cosmos-db/create-mongodb-dotnet),显然已经过时了。

我按照说明进行操作:克隆了示例应用程序文件,更新了我的连接字符串,通过Nuget软件包管理器安装了MongoDB.Driver并运行了该应用程序。由于2个应用程序文件中的多个CS0246和CS0234错误,生成(在Visual Studio 2017中)失败。查看屏幕截图

here

我不是C#开发人员。我怀疑MongoDB API已更改或MongoDB.Driver已过时。该错误表明缺少指令或程序集引用。

无论哪种方式,这都是Microsoft而非我编写的基础应用程序文件中的问题。在这里查看截图。有人对我如何解决这些错误并成功运行该应用程序有任何建议吗?也许我需要安装较旧的MongoDB.Driver旧版本?

2 个答案:

答案 0 :(得分:0)

我从https://github.com/Azure-Samples/azure-cosmos-db-mongodb-dotnet-getting-started/archive/master.zip下载了示例应用程序,目前确实处于不一致状态,应该由MS修复。

问题

项目引用了找不到的dll:

enter image description here

原因是要求Nuget下载2.6.1上的MongoDB.BS,但项目参考正在搜索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>

答案 1 :(得分:0)

感谢您的反馈。这是csproj文件中的问题。对于它的拉取请求已经提出。 您可以参考拉取请求以检查ETA以获得此修复程序。

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

希望有帮助。

相关问题