gpt4 book ai didi

c# - 在共享文件夹中部署 Microsoft 应用程序 block

转载 作者:行者123 更新时间:2023-11-30 22:48:30 24 4
gpt4 key购买 nike

我们正在创建一个共享库,它基本上是对 Microsoft 应用程序 block (缓存、日志记录等)的包装。

我正在尝试使这个库可用于多个 ASP.Net 应用程序。

此库部署在共享文件夹中。

我已经创建了一个自定义容器,所有 ASP.net 应用程序都将使用它来使用库中的任何服务(日志记录、缓存)等。容器使用库文件夹的位置来定位库 dll。

应用程序 block 的所有配置都在 app.config 中,由应用程序 block 动态加载。

我面临的问题是,假设应用程序 block Dll 将存储在 GAC 中,配置会尝试加载应用程序 block ,但由于某种原因,我无法将应用程序 block 程序集放置在 GAC 中。我将它们放在与 Library Dll 相同的文件夹中。

因此,库 Dll 无法加载应用程序 block 。我认为解决此问题的一种方法是在 Machine.Config 的运行时部分指定 CodeBase 元素。我想知道是否有更好的方法可以在配置文件中指定应用程序 block dll 的位置。

有什么想法吗?

问候,

最佳答案

在 .NET 中,您不能(轻松地)在多个应用程序之间共享库,除非它们被放置在 GAC 中。

AFAIR,CodeBase 元素仅用于指向特定的 COM 组件,因此它的存在是为了支持 COM 互操作。也就是说,您可以将您的 .NET 库导出为 COM 组件并通过 COM 互操作引用它,但我不推荐这样做,因为这会产生性能开销和维护开销。还记得 dll hell 吗?这就是该方法将引导您的方向。

如果您需要在多个应用程序之间共享程序集,您应该将它们放在 GAC 中。

否则,您需要将它们与每个应用程序一起部署。

这些是 .NET 的唯一选择。

关于c# - 在共享文件夹中部署 Microsoft 应用程序 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1630029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com