c# - 制作 GAC 程序集来加载自定义程序集

标签 c# .net azure azure-web-app-service .net-assembly

我的应用程序有一个 dll,它将由驻留在全局程序集缓存中的 .NET 框架程序集调用。这在本地机器上完美运行。

我在 Azure Web 应用程序中遇到问题。在 Azure Web 应用程序中,我无法将程序集添加到 GAC。因此,每当 GAC dll(System.dll、System.Xml.dll、..etc)尝试加载我的程序集时,它都会因抛出文件未找到异常而失败。但在同一过程中,我的程序集被加载到不同的应用程序域/LM/2/... 而不是 AppDomain“EE 共享程序集存储库”中。

  var appDomain = AppDomain.CreateDomain("New AppDomain", null, new AppDomainSetup
        {
            CachePath = AppDomain.CurrentDomain.SetupInformation.CachePath,
            ShadowCopyFiles = "true",
            LoaderOptimization = LoaderOptimization.SingleDomain //tried MultiDomain too
        });

通过上面的一些代码,我尝试创建一个具有不同配置和加载器优化集的AppDomain并将程序集加载到其中,以便System.dll可以找到并加载我的程序集。但这也行不通。

如何将我的程序集(位于 %home%\wwwroot\bin 中)加载到 GAC 中的 dll 中?

最佳答案

我相信您需要在 AppDomainSetup 对象上设置 ApplicationBasePrivateBinPath ,以便它知道从哪里加载程序集。

关于c# - 制作 GAC 程序集来加载自定义程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496758/

相关文章:

c# - 以异步方式在并发字典中调用 valuefactory

c# - 无法访问存储库基类方法

c# - XmlAttribute/XmlText 不能用于编码复杂类型

c# - 设置通用 WPF 控件的样式

c# - 为这个问题选择正确的数据结构 : circular linked list, 列表、数组或其他

c# - 为什么在运行时(代码隐藏)创建表是不好的?

azure - 管理连接字符串 Azure 云服务部署

azure - 如何读取 XML 文件 Azure Databricks Spark

c# - 使用自己的属性扩展 .NET MembershipUser

Azure 逻辑应用 Liquid 连接器 – 将 HTML 转换为 XML