只是为外行寻找一个简短的GAC概述,而不是一个链接.

推荐答案

是的,所以基本上这是一种保持DLL全球可访问的方式,而不用担心冲突.不会再有DLL地狱了.每种架构和版本都有自己的居住地.

它还能以自己的方式在资源管理器中浏览它,所以如果您转到

C:\Windows\assembly

在windows资源管理器中,它列出所有DLL.

但是如果你启动cmd,你可以看到它是如何构造的:

C:\Users\tritter>cd C:\Windows\assembly

C:\Windows\assembly>dir

 Directory of C:\Windows\assembly

07/20/2009  02:18 PM    <DIR>          GAC
06/17/2009  04:22 PM    <DIR>          GAC_32
06/17/2009  04:22 PM    <DIR>          GAC_64
06/17/2009  04:22 PM    <DIR>          GAC_MSIL
 ...snip...
               0 File(s)              0 bytes
               9 Dir(s)  90,538,311,680 bytes free

C:\Windows\assembly>cd GAC_64

C:\Windows\assembly\GAC_64>dir

 Directory of C:\Windows\assembly\GAC_64

06/17/2009  04:22 PM    <DIR>          .
06/17/2009  04:22 PM    <DIR>          ..
01/19/2008  09:54 AM    <DIR>          blbproxy
 ...snip...
01/19/2008  09:54 AM    <DIR>          srmlib
01/19/2008  06:11 AM    <DIR>          System.Data
01/19/2008  06:11 AM    <DIR>          System.Data.OracleClient
 ...snip...
               0 File(s)              0 bytes
              34 Dir(s)  90,538,311,680 bytes free

C:\Windows\assembly\GAC_64>cd System.Data

C:\Windows\assembly\GAC_64\System.Data>dir
 Directory of C:\Windows\assembly\GAC_64\System.Data

01/19/2008  06:11 AM    <DIR>          .
01/19/2008  06:11 AM    <DIR>          ..
04/11/2009  12:20 PM    <DIR>          2.0.0.0__b77a5c561934e089
               0 File(s)              0 bytes
               3 Dir(s)  90,538,311,680 bytes free

C:\Windows\assembly\GAC_64\System.Data>cd 2.0.0.0__b77a5c561934e089

C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>dir

 Directory of C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089

04/11/2009  12:20 PM    <DIR>          .
04/11/2009  12:20 PM    <DIR>          ..
04/11/2009  12:12 PM         3,008,512 System.Data.dll
               1 File(s)      3,008,512 bytes
               2 Dir(s)  90,538,311,680 bytes free

C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>

在这里您可以看到System.Data的版本2.0.0.0__b77a5c561934e089.

DLL由5个部分标识:

  1. 名称
  2. 版本
  3. 建筑学
  4. 文化
  5. 公钥

尽管前3家通常都是大公司.

.net相关问答推荐

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

PowerShell中窗体定时器和系统定时器的统一处理

.NET最小API BadRequest响应不返回正文

避免函数和其他对象之间的相互递归的模式?

Ubuntu 22.04 + JetBrains Rider 不能做脚手架 dbContext

如何手动注入依赖注入

"投掷;" 是什么意思?靠自己做什么?

Int32.ToString() 是特定于文化的吗?

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

添加新实体标量时实体框架 4 映射片段错误

如何在 C# 4.0 中使任务进入睡眠状态(或延迟)?

如何在 WPF 应用程序中使用 App.config 文件?

非通用 TaskCompletionSource 或替代

如何禁用 Alt + F4 关闭表单?

覆盖 ASP.NET MVC 中的授权属性

Find() 和 First() 抛出异常,如何改为返回 null?

Dispatcher.CurrentDispatcher 与 Application.Current.Dispatcher

让 String.Replace 只打整个单词的方法

确定使用 ContextMenuStrip 的控件

Roslyn 编译代码失败