【发布时间】:2020-05-04 17:47:55
【问题描述】:
我有一个 .NET Framework 4.6.2 应用程序 myApp.exe 具有多个内部和外部依赖项。所有依赖项都包含在主应用程序myApp.exe 中作为资源。
在应用程序启动时,我们的自定义程序集加载器通过事件AssemblyResolve 得到通知,并通过GetManifestResourceStream() 和Assembly.Load() 从myApp.exe 的资源中加载请求的程序集。
这工作正常,除了App.config:资源包含myApp.App.config,但自定义程序集加载器尚未加载它。这会导致一个问题,因为在App.config 中指定的所有程序集绑定重定向都不是由.NET 运行时应用的。将myApp.exe.config 放在myApp.exe 旁边时(与.NET 中的往常一样),一切正常。
我试图找到一种方法来避免附加文件myApp.exe.config。相反,我也想从资源中加载应用程序配置(尤其是绑定重定向)。这甚至可能吗?如果是,我该怎么做?
【问题讨论】:
-
您是如何包含和加载
App.config文件的? -
@PavelAnikhouski 你到底是什么意思?
App.config未加载 - 这是要解决的挑战。但它是作为资源嵌入的。 -
我不得不重新阅读这个问题。当您嵌入了正确的 dll 时,为什么需要绑定重定向?
-
@Jacek:由于依赖地狱:我们在与 GAC 不同的版本中引用和嵌入
System.Net.Http。这在运行时崩溃。通过myApp.exe.config添加绑定重定向解决了这个问题。 -
我想你在里面嵌入了正确的
System.Net.Http?你试过了吗?blog.slaks.net/2013-12-25/redirecting-assembly-loads-at-runtime
标签: c#