1

我正在尝试使用 c# WinForm 安装 DotSpatial,以查看 Map 控件。我已经使用 VS 中的 nuget 安装了 DotSpatial.Controls。安装成功。在我的工具栏中添加了 ../bin/debug 文件夹中的 DotSpatial.Control.dll,但是只添加了 3 个控件:AppManager、SpatialDockManager、SpatialHeaderControl。

为什么地图控制不存在?

4

2 回答 2

1

您最有可能遇到的问题是 Controls 库有许多依赖项是正确使用 Map 控件所必需的。如果您只下载一个 dll,则不足以获得所需的所有依赖项。以下是我为能够使用 1.9.0 版添加地图控件而采取的步骤:

  1. 使用 GitHub GitHub Desktop克隆 DotSpatial\DotSpatial 项目。
  2. 在 Visual Studio 中打开 Dotspatial\DotSpatial\Source\DotSpatial.sln。
  3. 在解决方案资源管理器中右键单击解决方案“DotSpatial”-> 构建解决方案
  4. 关闭解决方案并切换到您自己的项目或解决方案。
  5. 右键单击解决方案资源管理器中的引用 -> 添加引用
  6. 浏览到 Dotspatial\DotSpatial\Source\bin\Debug 文件夹。
  7. 选择您想要的模块,然后将它们添加为参考。 参考
  8. 右键单击工具箱窗口 -> 添加选项卡,将其命名为 DotSpatial。
  9. 右键单击 DotSpatial 选项卡 -> 选择项目 ...
  10. 点击浏览按钮 点击浏览
  11. 例如,导航到 Dotspatial\DotSpatial\Source\bin\Debug 文件夹。
  12. 选择 DotSpatial.Controls.dll
  13. 按命名空间对控件进行排序(确保选中所有 DotSpatial 控件) 在此处输入图像描述
  14. 单击确定添加它们。
  15. 现在您应该能够将地图拖放到您的项目中。

作为补充说明,当尝试添加控件并拖放地图而不首先设置我的项目引用时,我最终遇到了一个 IO 错误,说它找不到 DotSpatial.Projections.dll 的文件。

无论如何,我不是 100% 确定这是您遇到的问题,但希望它有所帮助。

于 2018-03-17T16:41:50.337 回答
0

Ted 似乎是正确的,因为问题在于地图控件的依赖关系。问题是通过 NuGet 安装包时,各种 dll 都安装在不同的目录中,而 Map Control 找不到它们。

解决方案是在将 DotSpatial.Controls dll 添加到工具箱之前将所有 dll 复制到一个公共目录中(Ted 回答中的步骤 8-15)。

或者您可以使用 Ted 的解决方案并下载源代码并编译源代码。

于 2019-11-15T19:21:42.543 回答