Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET应用程序对以编程方式加载的程序集中的程序集的引用_C#_Assemblies - Fatal编程技术网

C# ASP.NET应用程序对以编程方式加载的程序集中的程序集的引用

C# ASP.NET应用程序对以编程方式加载的程序集中的程序集的引用,c#,assemblies,C#,Assemblies,我的ASP.NET应用程序加载程序集并从其中的对象创建类实例。程序集本身有一个对称为“Aspose.Cells.dll”的dll的引用,它可以毫无问题地访问该dll,并且与程序集文件本身位于同一路径上。但是,当我对其中一个方法进行方法调用时,会出现以下错误: 无法加载文件或程序集“Aspose.Cells,版本=4.1.2.0,区域性=中性,PublicKeyToken=9a40d5a4b59e5256”或其依赖项之一 我想我需要让我的ASP.NET应用程序也引用这个DLL,但到目前为止我尝试的

我的ASP.NET应用程序加载程序集并从其中的对象创建类实例。程序集本身有一个对称为“Aspose.Cells.dll”的dll的引用,它可以毫无问题地访问该dll,并且与程序集文件本身位于同一路径上。但是,当我对其中一个方法进行方法调用时,会出现以下错误:

无法加载文件或程序集“Aspose.Cells,版本=4.1.2.0,区域性=中性,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"));
但我不能这样使用它:

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
事件似乎很有趣,我稍后会尝试一下。

您可以将依赖程序集复制到Bin文件夹中,或将其安装到GAC中

我想您可以在部分中向web.config添加程序集引用,如下所示:

<compilation debug="true">
  <assemblies>
     <add assembly="Aspose.Cells, Version=4.1.2.0, Culture=neutral,  PublicKeyToken=9a40d5a4b59e5256"/>
  </assemblies>
</compilation>


我不能完全确定这是否可行,它可能需要在下的节点中对应的web.config条目。

有几种方法可以做到这一点。Microsoft知识库文章中介绍了一种方法 "". 它提供了一个非常好的逐步实现方法