C# 正确链接MapPoint DLL

C# 正确链接MapPoint DLL,c#,dll,build,hyperlink,mappoint,C#,Dll,Build,Hyperlink,Mappoint,我有一个引用Microsoft MapPoint 18.0对象库北美ActiveX控件库的C应用程序-我在我的项目中的引用下添加了这个 应用程序将生成,我在调用new MapPoint.application时加入了一个try/catch,这样我就能够检测是否安装了MapPoint,并在应用程序的该部分不可用时显示一条错误消息—也就是说,我的应用程序不需要MapPoint,只要MapPoint可用,它就具有一些额外的功能 问题是,我现在对MapPoint二进制文件有编译时依赖性——应用程序不能在

我有一个引用Microsoft MapPoint 18.0对象库北美ActiveX控件库的C应用程序-我在我的项目中的引用下添加了这个

应用程序将生成,我在调用new MapPoint.application时加入了一个try/catch,这样我就能够检测是否安装了MapPoint,并在应用程序的该部分不可用时显示一条错误消息—也就是说,我的应用程序不需要MapPoint,只要MapPoint可用,它就具有一些额外的功能

问题是,我现在对MapPoint二进制文件有编译时依赖性——应用程序不能在没有安装MapPoint的工作站上构建


有办法解决这个问题吗?

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

这不是一个真正的问题,正如您所说,没有这些二进制文件,应用程序无法构建。。。但在构建之后,您可以分发构建输出,它应该运行。要引用这些文件并根据它们进行构建,显然在构建过程中需要这些引用的文件:没有办法复制这些文件的最小子集并将它们与二进制文件捆绑在一起?还是从我的工作站中提取构建所需的内容?它只需要构建链接到DLL所需的任何东西,对吗?我尝试从MapPoint安装文件夹复制TLB文件,但这似乎还不够…当然有一种方法,您可以在Visual Studio的“引用”节点中创建一些条目,选择这些条目,右键单击“属性”,然后将“复制本地”设为true。生成后,这些文件位于生成输出文件夹中,将它们复制到源代码树的子文件夹中,删除旧引用并从中引用文件,检查源代码管理中的所有内容,现在签出的人也拥有这些文件,并且可以生成。copy Local为false并显示为灰色。嗯。。。