0

考虑以下命令

gacutil /i Microsoft.Powershell.ConsoleHost.dll

这会将程序集安装到

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.PowerShell.ConsoleHost

现在,考虑一台没有gacutil. 您可以安装 此更新,并且相同的程序集将安装到相同的位置。此更新如何在没有的情况下安装到全局程序集缓存gacutil

4

1 回答 1

2

任何组件都应该(并且在这种特定情况下很可能会)使用安装程序进行安装。

来自MSDN:如何:将程序集安装到全局程序集缓存中

使用 Windows 安装程序。这是将程序集添加到全局程序集缓存的推荐且最常用的方法。安装程序在全局程序集缓存中提供程序集的引用计数,以及其他好处。[...] Gacutil.exe 仅用于开发目的,不应用于将生产程序集安装到全局程序集缓存中。

来自MSDN:将程序集安装到全局程序集缓存

Windows Installer 使用 Microsoft .NET Framework 将公共语言运行时程序集安装到全局程序集缓存中。

来自MSDN:DOC:全局程序集缓存 (GAC) API 未记录在 .NET Framework 软件开发工具包 (SDK) 文档中(通过SO:将 DLL 拖放到 windows server 2008 .net 中的 GAC(“程序集”) 4.0 ):

.NET Framework 软件开发工具包 (SDK) 文档中未记录允许您与全局程序集缓存 (GAC) 交互的本机代码应用程序编程接口 (API)。

实际安装似乎是通过IAssemblyCache::InstallAssembly().

于 2014-11-27T22:03:58.603 回答