【发布时间】:2013-11-29 15:20:09
【问题描述】:
我尝试为 RegioGraph (regiograph.de) 编写一个宏。我对.NET 几乎一无所知。 RegioGraph 有一个帮助文件描述了 API 本身,但是关于如何使用它的信息非常有限。我发现的唯一有用的参考是这个 C# 中的示例:http://www.cgo.se/wordpress/2010/10/14/regiograph-api/。
在听取 cmets 的建议后于 2013 年 12 月 11 日更新:
我发现 RegioGraph 程序集是 .NET 2.0,所以我安装了对应的 IronPython-2.6.2-Net20.msi:http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=ironpython&DownloadId=159513&FileTime=129321579152370000&Build=20841
我想得到一个 Application 对象:
IronPython 2.6.2 (2.6.10920.0) on .NET 2.0.50727.7905
Type "help", "copyright", "credits" or "license" for more information.
>>> import clr
>>> clr.AddReferenceToFileAndPath('C:/Program Files/GfK GeoMarketing/RegioGraph Planung 11/GfK.GeoMarketing.Api.dll')
>>> import GfK.GeoMarketing.Api
>>> app = GfK.GeoMarketing.Api.RegioApplication()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 2] Die Datei oder Assembly "GfK.GeoMarketing.Api, Version=11.0.0.96, Culture=neutral, PublicKeyToken=49e059cfaef07841" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
使用 Fusion 协议进行检查表明,仅在全局程序集缓存 (GAC) 和 IronPython 程序文件夹中搜索程序集。所以一种解决方法是将 GfK*.dll 复制到 C:/Program Files/IronPython 2.6/ 中。
当我安装 Visual Studio Express 2013 Desktop 时,我得到了这个简短的 C# 程序:
using GfK.GeoMarketing.Api;
class RGStart
{
static void Main()
{
RegioApplication application = new RegioApplication();
}
}
我必须遵循这些步骤(尝试翻译德语):
- 新项目,已安装/templates/Visual C#/Windows/console 应用程序,名称:RGStart
- 项目、RGStart 属性、应用程序、目标框架 .NET 2.0
- 项目、RGStart 属性、make/build、目标平台 x86
- 删除无效引用(在项目地图浏览器中标记)
- 项目,添加参考,浏览,C:\Program Files\GfK GeoMarketing\RegioGraph Planung 11
- GfK.GeoMarketing.Api.dll
- GfK.GeoMarketing.Gui.dll
- GfK.GeoMarketing.ManagedBackend.dll
- 替换 C# 代码 (Program.cs)
- F5,没有更多错误消息,应用程序对象启用对 RegioGraph 的访问
【问题讨论】:
-
你能把第一条错误信息翻译成英文吗?看起来它无法加载程序集,但我不确定。
-
@JeffHardy:无法加载文件或程序集“GfK.GeoMarketing.Api,Version=11.0.0.96,Culture=neutral,PublicKeyToken=49e059cfaef07841”或其依赖项之一。系统找不到指定的文件。
-
尝试在所有
GfK.GeoMarketing.*程序集上调用clr.AddReference,然后再执行其他任何操作 - 我猜它在加载其中一个时遇到问题,但异常并不清楚原因。否则,您需要考虑启用 Fusion 日志记录并使用fuslogvw.exe找出加载问题。 -
@JeffHardy 请原谅我反应迟钝。我通过用 C# 编写插件解决了我当前的 RegioGraph 问题,然后继续执行其他任务。
-
@JeffHardy 当我了解不同的 .NET 框架时,今天我用 .NET 2 替换了旧版本的 IronPython。不确定这是否有必要,因为我得到了与以前相同的结果。然后我设法按照您关于 Fusion Logging 的提示进行操作,该提示显示汇编程序绑定器仅在 GAC 和 IronPython 文件夹中看起来。将 GfK.* 复制到 C:\Program Files\IronPython 2.6 后,我得到一个应用程序对象(与上述相同的命令)。不想将此作为解决方案发布,因为肯定有更好的方法(在 GAC 中安装文件?)。
标签: .net ironpython