0

我有一个 COM 可见的 dll “COMInterface.dll”,它部署到现有应用程序的文件夹中。我创建了一个测试工具来验证这个 dll 的功能。

但是,当我尝试使用经典 asp 调用此 dll 的方法之一时,我收到如下消息:

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

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

asp 页面将在哪里寻找这些 dll?我猜我的工具可以工作,因为它是从程序文件夹中运行的,而 asp 页面位于 IIS 网站中。

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

提前感谢您的问题和建议。

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

4

2 回答 2

1

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

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

Fusion Log Viewer 将列出绑定器探测到的所有路径。如果你把你的程序集放到这些路径中的任何一个中,它就会被找到。我不确定这些路径中的任何一条是否适合您的场景。

于 2012-04-19T13:32:50.597 回答
1

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

于 2012-04-19T15:56:54.057 回答