【发布时间】:2009-04-29 21:05:03
【问题描述】:
我的 ASP.NET 应用程序加载一个程序集并从其中的对象创建一个类实例。程序集本身引用了一个名为“Aspose.Cells.dll”的 dll,它可以毫无问题地访问它,并且与程序集文件本身位于同一路径上。但是,当我对其方法之一进行方法调用时,会出现此错误:
无法加载文件或程序集 'Aspose.Cells, Version=4.1.2.0, Culture=neutral, PublicKeyToken=9a40d5a4b59e5256' 或其依赖项之一。
我认为我需要让我的 ASP.NET 应用程序也引用这个 DLL,但到目前为止我所做的一切都失败了。加载的程序集 DLL 不在 Web 应用程序的根目录中,我希望它不必位于。
我可以像这样加载程序集:
Assembly asm = Assembly.LoadFile(@"D:\Dev\EasyFlow\Plugins\ImportExportLibrary\bin\Debug\Aspose.Cells.dll");
但我不能这样使用:
AppDomain newDomain = AppDomain.CreateDomain("testAspose");
Assembly asm = newDomain.Load(System.IO.File.ReadAllBytes(@"D:\Dev\EasyFlow\Plugins\ImportExportLibrary\bin\Debug\Aspose.Cells.dll"));
有没有更好的方法?
更新:
感谢您的回复。
我忘了提到我不能将程序集复制到 bin 文件夹或 GAC,因为我希望它作为一个插件系统工作,可以通过更改配置文件中程序集的路径轻松替换程序集,而不必手动将文件复制到主项目中。
不过,AssemblyResolve 事件似乎很有趣,我稍后会试一试。
【问题讨论】:
标签: c# assemblies