【问题标题】:Correctly link against MapPoint DLL正确链接 MapPoint DLL
【发布时间】:2011-11-11 15:26:17
【问题描述】:

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

应用程序构建,我在对 new MapPoint.Application() 的调用周围放置了一个 try/catch,因此我将能够检测是否安装了 MapPoint,并在应用程序的该部分不可用时显示错误消息 - 那也就是说,我的应用程序不需要 MapPoint,如果 MapPoint 可用,它只是有一些额外的功能。

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

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

【问题讨论】:

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

标签: c# dll build hyperlink mappoint


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2019-08-26
    • 2011-06-08
    • 1970-01-01
    • 2021-04-28
    • 2023-03-26
    • 1970-01-01
    • 2012-11-14
    相关资源
    最近更新 更多