【问题标题】:Can I share a mine library to all applications?我可以将矿库共享给所有应用程序吗?
【发布时间】:2013-10-02 08:08:11
【问题描述】:

我有一个项目(.NET 4,但我也可以有 .NET 4.5),它总是使用我制作的同一个 DLL(它或多或少是我的数据层)。

每个网站都是一个应用程序。

我想将这个库共享给每个应用程序,所以如果我进行更新,我只会更新一个“文件夹”,我不需要在每个 Bin 文件夹上复制/粘贴这个库每个网络应用程序。

有可能吗?

例如,如果我创建了我的类MyClass2013,当我加载 Visual Studio 时,它将可用于每个 Web 应用程序:

MyClass2013 myClass = new MyClass2013()

对于每个应用程序,每次都无需复制和粘贴 Bin 的 DLL(我在其中定义了此类/方法等),如果我进行一些编辑,则保持所有这些更新。

以图书馆System为例:每个项目都可以访问,我什么都不导入!

【问题讨论】:

  • 将你的dll安装到Gac,但你仍然需要手动引用它。
  • 正如斯里拉姆所说;对于对单个库的通用访问,GAC 是正确的选择。对于您的“它可以立即在我的项目中使用”,您可以考虑根据您喜欢的项目类型为 Visual Studio 制作一个模板,并包含对“gac'ed”库的引用。
  • 为什么还要费心在 GAC 上安装它,在项目外部维护自己的 DLL 库有什么问题,而只是从任何项目中引用该文件夹中的相关文件? (与GAC基本相同,无需安装到GAC中)
  • @PaulZahra:我不明白,你是什么意思?例子?
  • @SriramSakthivel:如果您写为答案,我会接受;)

标签: c# .net iis webforms shared-libraries


【解决方案1】:

使用您的数据层项目,如果您将其编译到文件夹中,例如 C:/DLL_Library

假设 DLL 路径现在是 C:/DLL_Library/mine.DLL

然后这个 DLL_Library 文件夹可以容纳任何 DLL,无论是由多个项目或一个项目使用的 DLL(尽管某种形式的管理会有所帮助)

假设你的项目都在 C:/Projects/ 中

在每个项目中,您只需引用位于 C:/DLL_Library/mine.DLL 的 DLL 并将这个 DLL 库复制到编译您的其他项目的任何机器上。

附: power tools Visual Studio addon 很好地升级了引用向导。

【讨论】:

  • 不!它“导入它”。因此,如果外部它发生变化,我需要在任何项目中重新导入它!这是我想要避免的......
  • 当您想要使用多个版本的程序集时,您会发现 GAC 方法会遇到一个问题。
  • 我想这里有一个关于使用 Web 服务的论据。将它放在每个工作站的 GAC 中,使用 DLL 库并在编译时将其复制到每个项目中或使用一个集中式 Web 服务......嗯,我知道我更喜欢哪个。
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 2011-03-30
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多