正确链接到MapPoint DLL

问题描述:

我有一个C#应用程序引用“Microsoft MapPoint 18.0对象库(北美)”ActiveX控件库 - 我在项目的“参考”下添加了这个。正确链接到MapPoint DLL

应用程序构建,我围绕调用new MapPoint.Application()调用try/catch,以便能够检测MapPoint是否已安装,并在应用程序的该部分不可用时显示错误消息 - 即,我的应用程序不需要MapPoint,如果MapPoint可用,它只是有一些额外的功能。

问题是,我现在对MapPoint二进制文件具有编译时间依赖性 - 应用程序无法在没有安装MapPoint的工作站上构建。

有没有办法解决这个问题?

+0

这不是一个真正的问题,正如你所说的,应用程序不能没有这些二进制文件...但建成后,你可以分发生成输出,它应该运行。要引用这些文件并针对它们构建,显然您需要在构建过程中使用这些引用的文件:) –

+0

无法复制这些文件的最小子集并将它们与二进制文件捆绑在一起?或者从我的工作站中提取什么方法来构建?所有它应该需要构建的是链接到DLL所需的任何东西,对吧? (我试图从MapPoint安装文件夹中复制TLB文件,但这似乎还不够...) –

+0

当然有一种方法,在Visual Studio的引用节点中有一些条目,选择那些,右键单击,属性,并将本地复制设置为true。生成后,这些文件位于构建输出文件夹中,并将它们复制到源代码树的子文件夹中,然后删除旧引用并从中引用文件,检查源代码管理中的所有内容,现在谁执行退出的人也有文件与来源,并可以建立。 –

当你添加引用到你的项目时,VS应该为你创建一个互操作文件。这是您编译所需的全部内容,因此您可以将它放在共享位置或SCM工具中。

+0

我只是想通了 - 它的工作原理!谢谢! –