我在给定的解决方案中有多个项目。 从ProjectA我将“myProjectB.dll”作为程序集名称传递给方法调用 在ProjectC中。
当我在ProjectC中执行以下命令时,其中assemblyname是“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的完整绝对路径。它甚至可能吗?
由于
答案 0 :(得分:3)
如果程序集不在可执行文件的确切路径中,或者在GAC中,则需要在LoadFrom方法中提供完整路径。
例如:
Assembly assembly = Assembly.LoadFrom(@"C:\MyProjectB\bin\Debug\myProjectB.dll");
您还可以使用相对路径:
Assembly assembly = Assembly.LoadFrom(@"..\..\..\MyProjectB\bin\Debug\myProjectB.dll");