【问题标题】:Error when launching MapPoint 2006/2011 from C# .NET application on Windows Server 2008从 Windows Server 2008 上的 C# .NET 应用程序启动 MapPoint 2006/2011 时出错
【发布时间】:2011-07-16 17:15:09
【问题描述】:

我在尝试通过 Windows Server 2008 机器上的已发布应用程序在我们的 C# .NET 应用程序中使用 MapPoint 库时遇到问题。实例化 MapPoint.MapClass 时,出现错误:

“未正确复制此应用程序的注册表设置。要更正这些设置,请从您最初安装该应用程序的位置再次运行此应用程序的安装程序。”

我可以在应用程序之外自行启动 MapPoint,该错误仅在运行已发布的应用程序时出现。我们有多个客户端运行应用程序的服务器,运行 Server 2003 的服务器能够很好地启动 MapPoint。此外,XP和Win7机器也能正常工作。我们还有一个 Foxpro 应用程序,它也使用了安装在 2008 服务器上的 MapPoint 的 API,它没有任何问题。

MapPoint 作为 COM 引用包含在 VS 项目中,指的是“Microsoft MapPoint 13.0 Object Library (North America) 8.3”。

在网上找了一堆可能的解决方案,但都没有奏效。我试过了:

  1. 完全卸载 MapPoint 2006 并手动从注册表中删除所有条目,然后重新安装
  2. 执行与 1 相同的操作,然后安装 MapPoint 2011 的试用版,导致完全相同的错误消息
  3. 禁用 UAC
  4. 将 MapPoint.exe 的兼容模式设置为 Server 2003 和 XP

如果有人有任何其他建议,请告诉我。

【问题讨论】:

    标签: c# .net mappoint


    【解决方案1】:

    听起来确实有些东西正在部分安装/被阻止。这是用户问题吗? IE。可以为所有用户安装吗?

    它没有解释 MP2006 问题,但我会避免使用 API 工作的试用版 - 试用版 nag 屏幕可能是个问题。例如。如果您以隐藏的方式启动应用程序,用户将无法始终看到 nag 屏幕以将其关闭。

    你说你正在实例化一个 Map 类。应用程序(或 _Application)类呢:您必须拥有其中之一才能创建地图。

    【讨论】:

    • 服务器上的所有用户都会出现此问题。您对试用版的看法是对的,但我们安装它只是为了测试,看看 MP2011 是否能解决问题。在 C# 应用程序中,我们实例化 MapPoint.MapClass,然后调用 MapClass.FindAddressResults 函数。我不确定您在这里指的是什么应用程序类。
    • 我也不确定您指的是什么“MapClass”!我认为您的意思是“地图”,而您不了解应用程序对象的事实表明问题几乎可以肯定是您启动 MapPoint 的方式。您应该使用 MapPoint Application 对象或 MapPointControl 对象中的属性来获取对 Map 对象的引用。有关如何创建这些的详细信息,请参阅msdn.microsoft.com/en-us/library/aa562244.aspx
    • MapPoint 命名空间中的“MapClass”派生自“Map”,它是应用程序“ActiveMap”属性的类型。可以在不实例化应用程序的情况下实例化地图,这就是我们的程序当前的工作方式。但是,只是为了测试,我尝试实例化一个应用程序并从 ActiveMap 属性中获取地图。不幸的是,我仍然遇到同样的错误。
    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多