c# - 我的项目引用了另一个引用第 3 方程序集的项目。如何设置此第 3 方程序集的程序集路径?

标签 c# .net visual-studio-2010

我的项目 A 引用了项目 B。项目 B 持有对第 3 方程序集的引用。项目 A 位于项目 B 和第 3 方程序集之外的另一个文件夹中(由于与另一个软件集成)。我知道我可以将这些程序集放在集成文件夹中,但我希望将它们放在我自己的文件夹中,在那里我拥有所有其他程序集以及用于诊断和设置模块的可执行文件。

我在AppDomain.CurrentDomain订阅了A项目的MyResolveEventHandler,可以成功设置B项目正确的程序集路径,问题出现在A项目调用时项目 B 中使用第 3 方程序集的方法。然后它为该程序集抛出 FileNotFoundException,并显示集成文件夹的路径,而不是我在 MyResolveEventHandler 中为项目 B 设置的文件夹。

我已经尝试过 AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(@"pathOf3rdPartyAssembly")),它会告诉我它已成功将程序集加载到 Appdomain ,但仍会抛出上述相同的 FileNotFoundException

如何从项目 A 设置项目 B 中使用的第 3 方程序集的程序集路径?


编辑: 抱歉,这个问题是由我自己一个隐藏得很好的错误引起的。我实现了一些引发 FileNotFoundException 的 dll 劫持对策。实际上,当为项目 B 设置了正确的汇编路径时,这对项目 B 中引用的第 3 方应用程序也有效。抱歉浪费你的时间......我可以向你保证我在问这个问题之前浪费了很多时间,当问问题,问问题之后。现在我要继续了……:)感谢您的所有建议!我会给你们两个都投赞成票...

最佳答案

您可以 setup a custom probing path为您的第 3 方集会。请注意,此方法不适用于 ASP.NET 应用程序(它们不支持自定义探测路径)。

关于c# - 我的项目引用了另一个引用第 3 方程序集的项目。如何设置此第 3 方程序集的程序集路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965505/

相关文章:

无法加载模块中的 C# 类

c# - FreeSWITCH : Is there a way to get the audio stream from other leg via the native API

asp.net - 为什么 ASP.NET Web 服务占用如此多的内存?

java - 如何将旧数据转换到新系统?使用 sql 或托管代码?

c# - 如何在 C# 2010 的表单中创建自定义组件?

c# - WPF 中的 SwingUtilities.invokeLater 等价物

c# - Entity Framework 中的 3 种方式多对多

c# - 在 Visual Studio Enterprise 2017 中缺少创建 GUID?

visual-studio-2010 - 您如何/如何将 VS2010 连接到 Codeplex 的 TFS?

c++ - Visual Studio 2010 : How to print memory to a text file?