2

我在给定的解决方案中有多个项目。从 ProjectA 我将“myProjectB.dll”作为程序集名称传递给 ProjectC 中的方法调用。

当我在 ProjectC 中执行以下操作时,程序集名称为“myProjectB.dll”

Assembly assembly = Assembly.LoadFrom(assemblyname);
foreach (Type type in assembly.GetTypes())
{
       ... my code ...
}

我收到以下错误

Could not load file or assembly 'file:///C:\MyProjectB\bin\Debug\myProjectB.dll' or one of its dependencies. The system cannot find the file specified.

请让我知道如何将程序集名称正确传递到 Assembly.LoadFrom 方法调用中。

如何仅提供项目 DLL 名称并能够在运行时浏览解决方案并在解决方案中识别该 DLL 的完整绝对路径。甚至可能吗?

谢谢

4

1 回答 1

3

如果程序集与可执行文件或 GAC 中的路径不同,则需要在 LoadFrom 方法中提供完整路径。

例如:

Assembly assembly = Assembly.LoadFrom(@"C:\MyProjectB\bin\Debug\myProjectB.dll");

您还可以使用相对路径:

Assembly assembly = Assembly.LoadFrom(@"..\..\..\MyProjectB\bin\Debug\myProjectB.dll");
于 2012-07-24T19:10:03.133 回答