我正在尝试使用 c# WinForm 安装 DotSpatial,以查看 Map 控件。我已经使用 VS 中的 nuget 安装了 DotSpatial.Controls。安装成功。在我的工具栏中添加了 ../bin/debug 文件夹中的 DotSpatial.Control.dll,但是只添加了 3 个控件:AppManager、SpatialDockManager、SpatialHeaderControl。
为什么地图控制不存在?
我正在尝试使用 c# WinForm 安装 DotSpatial,以查看 Map 控件。我已经使用 VS 中的 nuget 安装了 DotSpatial.Controls。安装成功。在我的工具栏中添加了 ../bin/debug 文件夹中的 DotSpatial.Control.dll,但是只添加了 3 个控件:AppManager、SpatialDockManager、SpatialHeaderControl。
为什么地图控制不存在?
您最有可能遇到的问题是 Controls 库有许多依赖项是正确使用 Map 控件所必需的。如果您只下载一个 dll,则不足以获得所需的所有依赖项。以下是我为能够使用 1.9.0 版添加地图控件而采取的步骤:
作为补充说明,当尝试添加控件并拖放地图而不首先设置我的项目引用时,我最终遇到了一个 IO 错误,说它找不到 DotSpatial.Projections.dll 的文件。
无论如何,我不是 100% 确定这是您遇到的问题,但希望它有所帮助。
Ted 似乎是正确的,因为问题在于地图控件的依赖关系。问题是通过 NuGet 安装包时,各种 dll 都安装在不同的目录中,而 Map Control 找不到它们。
解决方案是在将 DotSpatial.Controls dll 添加到工具箱之前将所有 dll 复制到一个公共目录中(Ted 回答中的步骤 8-15)。
或者您可以使用 Ted 的解决方案并下载源代码并编译源代码。