问题标签 [gac]

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 投票
1 回答
236 浏览

assemblies - CLR 是否曾经从 GAC 释放程序集的绑定

我有多个服务正在从 GAC 中提取程序集。当我安装其中一项服务时,它会使用由各种服务共享的新程序集更新 GAC,并将新策略文件插入 GAC,以便所有以前的版本都查找新程序集。所有服务都在不重新启动服务的情况下采用该策略并完美地使用新程序集。问题和问题是当我回滚此版本并卸载程序集和策略并重新启动与安装新程序集相关的服务时。显然,重新启动的服务会在 GAC 中选择以前版本的程序集。但是,在使用此程序集的服务器上运行的其他服务仍绑定到策略文件中的新版本程序集。我的问题是:

绑定是否像缓存一样,最终会释放它并重新拾取旧程序集?还是会一直绑定直到服务重新启动?

如果它需要重新启动,除了找到所有使用此程序集的服务并重新启动这些服务,或者重新启动服务器本身以消除对已从 GAC 中删除的程序集的遮蔽之外,是否还有其他方法?

0 投票
2 回答
735 浏览

.net - 谁应该为 GAC 安装共享的 .NET 库?提供库的框架?每个使用它的应用程序?两个都?

这或许更像是一个哲学问题。

假设我有一个框架,我决定提供一个 .NET 库,使框架的某些方面的使用更容易。我不希望每个使用该框架的应用程序都在本地携带库的副本,因此我希望它在 GAC 中(即使存在可能暗示的所有维护问题。)

我可以让框架很容易地将库安装到 GAC 中,因此每个应用程序都不必这样做。但是当我创建新版本的库时,我的框架安装程序必须同时携带旧库和新库,以确保升级不会删除某些应用程序可能正在使用的旧库。

但是,如果每个应用程序也将库安装到 GAC,Windows Installer 引用计数就会启动,并且我的框架不再需要担心在升级场景中携带旧库。仅当最后一个 Windows Installer 引用消失时,才会卸载正在使用的库。

显然,每个应用程序在构建应用程序时都可以访问该库,并且可以轻松地将其包含在其安装程序中。

有人对一个与另一个有意见/观点/经验吗?我意识到这不是严格要求的问题类型(因为它会引起讨论),但我认为简短的讨论会很有用。

0 投票
15 回答
77128 浏览

c# - 找不到 System.Windows 程序集

这是我们得到的错误:

错误 1 ​​类型“System.Windows.Point”在未引用的程序集中定义。您必须添加对程序集“System.Windows,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e”的引用。C:\PacMan\PacMan\PacMan\PacManTests\UnitTest1.cs 65 13 PacManTests

我们在无法找到 System.Windows 程序集的单元测试项目中遇到此错误,但我们的主项目可以找到程序集并正常运行。

是否有人对我们可以在何处或如何引用 System.Windows 来解决此问题有任何意见或建议?

0 投票
4 回答
2166 浏览

.net - 如何让 .NET 首先在本地文件夹中而不是 GAC 中查找程序集?

据我了解,.NET 运行时总是会先在 GAC 中查找引用的程序集,然后再在本地文件夹中查找。Web.Config 中是否有会颠倒此顺序的设置?

0 投票
1 回答
164 浏览

asp.net-mvc - ASP.NET MVC:Bin 在同一台服务器上部署 V1 和 Beta

我在运行一些应用程序的 Web 服务器上安装了 ASP.NET MVC Beta。我的最新应用程序即将完成,它使用 ASP.NET MVC 版本 1。

我的想法是我可以 bin 部署 V1 程序集并安装 Beta,以便默认使用它。这个想法不起作用,因为它忽略了 bin 文件夹并从 GAC 中获取(两者都是版本 1.0.0.0)。相反,我将 Beta MVC dll 复制到使用 Beta 构建的应用程序的 bin 目录中,并卸载了从 GAC 中删除 dll 的 Beta MVC。

然后我转到一个使用 Beta MVC 的页面,该页面在其 bin 目录中包含 Beta dll,并得到一个错误,即在 GAC 中找不到 system.web.mvc dll。当然不能,我将它们删除并放在 bins 文件夹中!

所以我有点难过。

有没有一种方法可以强制 Web 应用程序查看其 bin 目录而不是 GAC?

0 投票
2 回答
2083 浏览

c# - 我是否需要为开源项目保护我的强名称密钥文件?

我正在创建一个入门工具包,它将来自开源项目的已编译程序集安装到 GAC 中,以便更轻松地在模板中引用程序集。由于他们要加入 GAC,因此需要签署。

我是否需要密码保护和保护密钥文件,或者是否可以将其保持打开状态并将文件包含在源代码管理中?

0 投票
1 回答
3500 浏览

c# - FxCop 和 GAC 疯狂

当我尝试分析依赖于模式和实践的项目时使用 FxCop,企业库数据(以及其他)2.0.0.0 - FxCop 抱怨它不能:“找到程序集引用” - 即使正在分析的应用程序 dll 是针对此版本及其在 GAC 中。如果我浏览 GAC 尝试选择相同的程序集(我已检查版本和公钥令牌),FxCop 将不允许我“打开”它。该应用程序成功运行,并且肯定使用了问题 dll。

操作系统:在 Vista 和 Windows XP 上都可以看到。版本:Visual Studio 2005 和 2008。FxCop 1.36 应用程序符合 VS2005 for .NET 2.0。

如果我尝试使用 Reflector 浏览应用程序 dll,我也会遇到同样的问题。

显然,它不认为这是它编译的程序集的同一版本。有谁知道为什么?有什么解决方案的建议吗?我错过了什么?

0 投票
1 回答
1946 浏览

asp.net-mvc - 在 GAC 中加载 System.Web.Mvc 时,.NET MVC 是否工作?

是否允许将 System.Web.Mvc 放入 GAC?允许:它有效吗?

我已经这样做了,我所有的项目都有从 System.Web.Mvc.ViewPage 继承的问题......

编辑 希望这不会吓到你:

Microsoft (R) Visual Basic 编译器版本 9.0.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(1):错误 BC30456:“标题”不是“ASP.views_home_list_aspx”的成员。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(1):错误 BC30456:“InitializeCulture”不是“ASP.views_home_list_aspx”的成员。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(1):错误 BC30456:“MasterPageFile”不是“ASP.views_home_list_aspx”的成员。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(7):错误 BC30456:“AddContentTemplate”不是“ASP.views_home_list_aspx”的成员。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(11):错误 BC30456:“AddContentTemplate”不是“ASP.views_home_list_aspx”的成员。

C:\Bugging\VandaagLijst\VandaagLijst\Views\home\List.aspx(13):错误 BC30451:未声明名称“模型”。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(42) : error BC30198: ')' 预期。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(43):错误 BC30154:类 'views_home_list_aspx' 必须实现 'ReadOnly 属性 IsReusable( ) 作为接口“System.Web.IHttpHandler”的布尔值。实现属性必须具有匹配的“ReadOnly”或“WriteOnly”说明符。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(43):错误 BC30149:类 'views_home_list_aspx' 必须实现 'Sub ProcessRequest(context作为 HttpContext)' 用于接口 'System.Web.IHttpHandler'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(55):错误 BC30311:无法转换“ASP.views_home_list_aspx”类型的值到“System.Web.Mvc.ViewPage”。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(57):错误 BC30456:“ReadStringResource”不是“ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(61):错误 BC30456:“GetWrappedFileDependencies”不是“ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(68) : 错误 BC30456: 'Context' 不是 'ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(74) : 错误 BC30456: 'Context' 不是 'ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(193) : 错误 BC30284: sub 'FrameworkInitialize' 不能被声明为 'Overrides' 因为它不会覆盖基类中的子类。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(195):错误 BC30456:“SetStringResourcePointer”不是“ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(197):错误 BC30456:“AddWrappedFileDependencies”不是“ASP. views_home_list_aspx'。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(201):错误 BC30284:函数 'GetTypeHashCode' 不能被声明为'Overrides',因为它不会覆盖基类中的函数。

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\24f69041\8efa8a35\App_Web_p7uswgud.2.vb(206) : 错误 BC30284: sub 'ProcessRequest' 不能被声明为 'Overrides' 因为它不会覆盖基类中的子类。

0 投票
2 回答
2494 浏览

.net - 为什么 Visual Studio 的“添加引用”对话框中的 .NET 选项卡没有列出 GAC 的内容?

重复让程序集显示在“添加引用”的 .NET 选项卡中

所以,我使用的是 Visual C# 2008 Express Edition,我只是走了一点弯路,因为我发现我假设“添加引用”对话框的 .NET 选项卡列出了 GAC 的内容是不正确的.

这对我来说有点问题,因为我想从我的项目中引用的程序集仅在 GAC 中可用。(它是从 XNA 2.0 redistributalbe 获得的 Microsoft.XNA.Framework v2.0,据我所知,它只安装到 GAC 中)。

我通过在 .csproj 文件中手动设置对 Microsoft.XNA.Framework 的引用来解决这个问题,然后从缓存中获取 dll 的副本。然后我能够为 DLL 创建一个目录,将其添加到注册表中 Visual Studio 的程序集目录列表中,然后瞧!我可以在 .NET 选项卡中看到它。

这一切对我来说似乎有点小题大做,我不认为我最初的假设(.NET 选项卡显示 GAC 的内容)有那么不合理或不常见。比我了解更多的人可以告诉我吗

  • 为什么没有显示 GAC 的内容?文档只是说它们不是,但是有充分的理由吗?
  • 实际上有没有办法让 GAC 的全部内容被列出?我在某处错过的复选框?

非常感谢任何信息。

0 投票
6 回答
30305 浏览

powershell - 使用 PowerShell 查看全局程序集缓存 (GAC) 的内容

有没有办法使用 PowerShell 查看 GAC 的内容?