我的应用程序在运行时从特定子文件夹动态加载程序集。 这些程序集编译时依赖于其他程序集。 运行时尝试从应用程序目录加载这些内容。 但我想将它们放入模块目录中。

有没有办法告诉运行时dll在一个单独的子文件夹中?

===============>>#1 票数:18 已采纳

我最近使用的一个很好的方法是为AppDomain的AssemblyResolve事件添加一个事件处理程序。

AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);

然后在事件处理程序方法中,您可以使用Assembly.Load,Assembly.LoadFrom覆盖之一加载试图解析的程序集,并从该方法返回它。

编辑:

基于您的其他信息,我认为使用上述技术,特别是自己解决对程序集的引用是唯一真正的方法,无需重组您的应用程序即可运行。 它给你的是CLR无法解决的每个程序集的位置可以在运行时由代码确定和加载...我在类似的情况下使用它来实现可插拔体系结构和程序集参考完整性扫描工具。

===============>>#2 票数:4

您可以使用清单文件中的<probing>元素告诉Runtime在其组件文件的不同目录中查找。

http://msdn.microsoft.com/en-us/library/823z9h8w.aspx

例如:

<configuration>
 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <probing privatePath="bin;bin2\subbin;bin3"/>
  </assemblyBinding>
 </runtime>
</configuration>

===============>>#3 票数:1

您可以使用应用程序配置文件中的<codeBase>元素。 有关“ 通过代码库或探测查找程序集 ”的更多信息。

好吧,加载的程序集没有应用程序配置文件。

好吧,如果你在运行时知道特定的文件夹,你可以使用Assembly.LoadFrom

  ask by FantaMango77 translate from so

未解决问题?本站智能推荐:

36回复

无法加载文件或程序集或其依赖项之一

我遇到了另一个“无法加载文件或程序集或其依赖项”问题。 附加信息:无法加载文件或程序集“ Microsoft.Practices.Unity,版本= 1.2.0.0,文化=中性,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。 找到的程序集的清单定
2回复

.NET程序集依赖项

也许我错过了一些明显的东西,但...... 我已经构建了一个可重用的通用C#类库项目说(A.dll)引用其他3个程序集说(B.dll,C.dll和D.dll) 但是,如果我想在另一个项目中重用我的组件A.dll,我仍然需要包含对B.dll,C.dll和D.dll的引用。 有没有
1回复

无法加载具有非托管依赖项的.Net程序集

我们已经购买了一个进行信号处理的库。 该库是用C ++编写的,它提供了两个.Net包装器。 如果仅引用.Net包装器,则可以构建,但是在运行它时,我们会收到异常消息,告知我们找不到c ++ dll。 如果我手动复制本机dll,一切正常。 解决此问题的最佳方法是什么? 我
1回复

WCF:无法加载文件或程序集“ EntityFramework”或其依赖项之一

我试图构建一个在iis中托管的WCF,但我遇到了一个烦人的问题。 当我运行客户端控制台应用程序并连接到服务器时,出现错误“无法加载文件或程序集'EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a
1回复

WCF服务:无法加载文件或程序集或其依赖项之一

我创建了WCF服务并添加了一个dll文件作为参考,并且在运行时出现标题中提到的错误 。 创建了一个WPF应用程序,并添加了相同的dll文件作为参考,但是它可以正常工作 。 dll文件具有我在wpf应用程序的bin / debug文件夹中手动添加的其他引用。 当我尝试对WCF服务
3回复

发布后无法加载文件或程序集###或其依赖项之一

我的问题是,当我在本地运行项目时,它运行良好。 但是,当我发布到IIS服务器时,出现错误提示。 无法加载文件或程序集“ Microsoft.Owin”或其依赖项之一 当我修复Microsoft.Owin问题时,System.Web.Http出现了问题。 为什么发布后仅是一个
1回复

无法加载文件或程序集“EntityFramework”或其依赖项之一

我在IIS上有这个错误,但在localhost网站上工作很好。 无法加载文件或程序集“EntityFramework”或其依赖项之一。 此程序集由比当前加载的运行时更新的运行时构建,无法加载。 堆栈跟踪: 请帮忙
4回复

错误:无法加载文件或程序集或其中一个依赖项

我目前的项目名称是“Power”。 我已经在这个项目上工作了几个星期了,现在已经快结束了。 但是今天当我尝试调试时,出现了这个错误。 尝试运行项目时出错:无法加载文件或程序集“Power”或其中一个依赖项。 该模块应该包含一个程序集清单。 我将Documents中的
1回复

反射:“无法加载文件或程序集”双重依赖项倒置

你好吗?? 我希望你们中的一个能帮助我! 这些是发挥作用的软件包及其关系(我正在使用C#): 假设在每个项目中都有一个同名的类。 Logic类实现ILogic接口,而Log类实现ILog接口。 因此,这些将是这些类: 所以,当我打电话 它使用Refle
1回复

针对动态程序集加载的Nuget依赖项解析

我正在迁移到nuget,遇到了以下问题:我有三个项目A,B,C和A依赖于B和C,而B依赖于C: A => B,C B => C 项目C 项目B 项目A 项目C在启动时正在动态加载程序集。 现在让我们想象以下情况: 我有两个