2012-04-19 33 views
0

我有一个COM可见的dll“COMInterface.dll”,它被部署到现有的应用程序的文件夹中。我创建了一个测试工具,验证了此dll的功能。经典的asp如何访问由COM-Visible类引用的.NET dll?

但是,当我尝试使用传统的ASP来调用这个DLL的方法之一,我得到像下面这样的消息:

MyCompany.MyProject.COMInterface(0x80070002) 无法加载文件或程序集“ MyCompany.Framework,Version = 2.6.4202.14897,> Culture = neutral,PublicKeyToken = null'或其依赖项之一。该系统找不到指定的文件。

我的“COMInterface.dll”引用了许多其他dll,例如我公司的标准框架,日志记录类等。“框架”就是其中一个这样的dll。

asp页面将在哪里寻找这些DLL?我猜测我的线束工作,因为它是从程序文件夹运行,而asp页面是在IIS网站。

我需要在这里使用GAC注册吗?我希望不会有那么多需要在那里部署的dll,我希望扩展应用程序,而不必影响用户机器上的核心安装。

在此先感谢您的问题和建议。

[编辑] 我应该指出,该对象可以创建好。这是导致问题的引用dll的位置。

回答

1

当您使用Regasm来注册dll时,您需要使用/Codebase开关来确保可以找到dll。

+0

谢谢,我会检查一下。你知道吗,如果这可以通过VS(2008)IDE完成的话,那么你知道吗? – Ste 2012-04-20 07:49:18

+0

谢谢,安东尼。即使我没有完全解决我的问题,我仍然接受这个答案。我敢肯定,这将最终排序的问题,但我有问题引用DLL没有强命名! – Ste 2012-04-20 13:37:51

1

作为一般答案,您可以使用Fusion Log Viewer来确定程序集活页夹搜索的路径。

有关此工具的信息,请参阅http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

Fusion Log Viewer将列出活页夹探测到的所有路径。如果你把你的程序集放到任何这些路径中,它都会被找到。对于你的情况,这些路径中的任何一条将是合适的我不太确定。

+0

谢谢,RB。我现在就来看看。 – Ste 2012-04-19 13:40:43