.NET 中的程序集物理位置在哪里?
-
19-09-2019 - |
题
我对 .NET 程序集的物理位置有点困惑。好好老 LINQ. 。在我的 web.config
文件上写着:
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
这是对 LINQ 的引用。但是 this 引用的 DLL 到底位于哪里呢?上面没有任何路径,也不在我的bin文件夹中。
我还有我认为是第三方程序集的参考:
<add assembly="MapInfo.CoreTypes, Version=4.0.0.483, Culture=neutral, PublicKeyToken=F548BCBA69D4B8DA" />
如果它不在我的机器上,我如何知道它位于哪里 bin
文件夹?
另外,如果 DLL 文件位于 bin
目录,我可以假设它不需要在 web.config
?
其他提示
我认为它们存在于在 GAC ,该位于%WINDIR%\Assembly
。更多信息可在 揭秘.NET全局组件缓存 (在的代码项目)。
装配和融合路径探测非常复杂。我想说,.NET 通常会从两个位置之一解析程序集:
它将在本地目录中找到它,例如当前目录、bin 子目录或 Fusion 程序集绑定逻辑指定的其他位置,或者
它将在全局 GAC 存储中找到它,可以在其中通过名称、版本和其他一些属性来注册和查找程序集。
为了解决有关“bin”目录的具体问题,如果您使用的是 ASP.NET(我假设您参考了 web.config
),那么是的,您不需要包含路径 - ASP.NET 将处理它需要执行的任何操作,以使 .NET 在“bin”目录中查找程序集。
一些的.Net组件都位于净的安装文件夹
如
C:\程序文件(x86)\参考 组件\微软\ Framework.NETFramework \ V4.0
里面有坐在组件。在.NETFramework一个级别,你会发现.NET不同版本及其相应的组件。
程序集主要可以在以下任一位置找到:
- 广汽集团 -C: Windows assembly gac(在某些情况下提供的Microsoft和第三方提供)
- 安装文件夹(大多数第三方控件)
您可以通过右键单击项目引用中的程序集并选择来获取有关程序集的路径和其他信息 特性.
不隶属于 StackOverflow