问题标签 [global-assembly-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2037 浏览

.net - 定义一个 .net 引用以始终使用最新版本的 GAC'd dll?

我们有一个供应商正在为我们编写一个使用我提供给他们的 dll 的应用程序。我的老板刚刚发现,如果我们需要对其中一个 dll 进行更改,我们必须向供应商提供更新版本,以便他们重新编译他们的项目。这会导致问题,因为我们没有自动化测试,并且任何新构建都需要我们的 QA 部门进行完整的运行。

我之前没有对 GAC 做过太多工作,但我相信这可能就是我们正在寻找的。有没有一种方法可以将我的 dll(我提供给供应商的那个)部署到 GAC 并让供应商以始终从 GAC 获取最新版本的方式构建他们的 .net 项目?

0 投票
1 回答
1313 浏览

installshield-2009 - 使用 installshield 替换 GAC 中相同版本的 DLL

我们最近使用来自第三方的“测试”DLL 对我们的一个应用程序进行了更新。第三方不会在 dll 上更新他们的程序集版本,只会更新文件版本,因此多个应用程序可以引用它的不同“版本”。但是,GAC 仍然允许我们保留最新版本,因为它还会检查始终更新的文件版本。

发生的事情是我们还没有准备好发布这个 DLL,但它已经在一些客户机器上发布了。我想把我们当前的实时版本放回去,但它有一个旧的文件版本(和相同的程序集版本)作为测试 DLL。我们有多个引用这个 DLL 的应用程序,所以我不能简单地删除它并放入新的。

有没有办法替换 GAC 中的 DLL?我正在使用 installshield 2009。也许安装时有某种自定义操作?

0 投票
1 回答
360 浏览

.net - 在共享 IIS 6 服务器上的 GAC leiu 中禁止使用 bin 部署 DLL

我需要就与我合作的组织最近的安全策略更改征求反馈。他们最近禁止将 DLL 二进制部署到共享的 IIS 6 应用程序服务器。这些服务器托管许多独立的 Web 应用程序池。新规则要求在 GAC 中安装所有 DLL。

这对我来说是个问题,因为我对多个 dll 进行了 bin 部署,包括 ASP.NET MVC 框架、HTML Agility Pack、ELMAH 和我自己的共享类库。我这样做是因为:

  • 消除 Web 应用程序服务器对全局程序集缓存的依赖性。
  • 允许我(开发人员)控制我的应用程序内部发生的事情。
  • 使应用程序能够部署为“包”。
  • 消除服务器管理员的应用程序部署负担。

现在,这是我的问题。

  • 从安全角度来看,使用 GAC 与 bin-deployment 的优势是什么?
  • 是否可以在 GAC 中托管同一 DLL 的多个版本?
  • 有没有人遇到过类似的限制?
0 投票
2 回答
136 浏览

assemblies - 对 GAC 的困惑

面试时,面试官问了这个关于全局程序集缓存(GAC)的问题,我很困惑。答案应该是什么?

问题 1:不是将程序集保存在 GAC 中,而是如果我们创建目录并将程序集保存在那里,并且如果我们将该目录设为共享目录,那么连接的计算机可以使用这些程序集吗?如果我将程序集保存在 GAC 和共享文件夹中有什么区别?

编辑: 问题 2:考虑有 4 台支持视觉工作室的开发机器。其中,一个是作为服务器。那么其他机器(除了服务器机器)可以在服务器机器的 GAC 中使用程序集吗?

0 投票
2 回答
6479 浏览

visual-studio-2010 - 每次构建时都安装 GAC - 如何可靠地安装

当我使用 Visual Studio 编译我的应用程序时,我想在 GAC 中可靠地自动安装我的应用程序程序集。我在 Web 应用程序的构建中设置了构建前和构建后事件。

预构建事件:

构建后事件:

如您所见,我还在回收我的 Web 应用程序池,以便新程序集开始工作。

我遇到的问题是这是一个非常不可靠的过程。如果我的 Web 应用程序失败,我的下一个构建将失败,因为卸载将失败(构建后没有在以前的构建上运行)......等等。

我想让这个过程尽可能可靠。我想有条件地卸载和程序集,如果它们存在并强制安装,无论它们是否存在......但是预构建事件仍然很重要,原因如下:

重要的

重要的是在构建之前完全卸载我的所有程序集,否则它们不会复制到我的输出目录(因为编译器在 GAC 中找到它们)因此 GAC 安装失败,因为它无法在输出 \bin 文件夹中找到程序集。

我应该如何可靠地在我的 Web 应用程序构建上进行 GAC 卸载和安装?

0 投票
2 回答
188 浏览

.net - 支持程序集是否需要在 GAC 中注册?

我最近不得不在我的 GAC 中为我编写的自定义共享点作业注册一个程序集。安装后,它开始抛出一个错误,说它无法加载程序集“或其依赖项之一”。我是否需要在 GAC 中注册任何支持程序集(例如 System.Collections)才能识别我的主程序集?

0 投票
3 回答
1399 浏览

asp.net - windows 怎么找不到这个程序集?

我的 Windows 日志中不断出现此错误:

但是它所讨论的程序集已经在我的 GAC 中显示:

替代文字

我在这里错过了什么吗?GAC 中的所有内容都与错误消息匹配。windows怎么找不到这个?

0 投票
1 回答
289 浏览

.net - 如何强制使用 GAC 的程序集?

我正在开发一个使用必须在 GAC 中的程序集的应用程序。我的问题是,当我在 GAC 中更新程序集时,我必须重新启动机器才能让我的服务获取新程序集。是否有某种方法可以强制使用 GAC 程序集的服务开始使用新程序集?

使用 GAC 程序集的服务是 SharePoint Timer Services。我已经尝试停止和启动该服务以及停止和启动 IIS ......

0 投票
1 回答
177 浏览

c# - 每次更改其用户应用程序时,都需要将程序集重新部署到 GAC


所以基本上我们有一个强名称(强签名)程序集 x.dll,它由我们的组件之一 App.exe 使用。程序集的签名密钥在我们的存储库中,并且程序集是通过书面形式签署的

该程序集应该由一些安装通用软件包的安装程序放入 GAC,我们将其命名为 common.msi。但是我们的组件本身是由 App.msi 安装的。一起部署时,一切正常。但是当对 App.msi 进行更改时,那些与 x.dll 完全无关的,并且重新部署 App.msi,App.exe 无法找到 x.dll。请注意,不会对 x.dll 进行任何更改。但是,当也部署 common.msi 时,一切正常。所以我猜肯定存在构建版本或其他东西的问题,或者我一无所知的清单。有什么明显的我做错了吗?是不是可以单独部署组件而不触摸它,除非它被更改并且每次使用它的组件发生更改时都不会重新部署它?谢谢。

编辑:将程序集放入 GAC 是一项要求(我对此无能为力)

0 投票
1 回答
2614 浏览

asp.net - Gacutil.exe 在哪里?

可能重复:
Gacutil 与 2008 的位置

我似乎找不到 Gacutil.exe 所在位置的答案?我在 Windows 7 上,安装了从 1.0 到 4.0 的所有当前 .NET 版本,并安装了 Visual Studio 2008 和 2010 Professional。

有任何想法吗?