.NET中的程序集在物理上位于何处?
我对.NET程序集的物理位置有点困惑。好好休息一下。在我的.NET中的程序集在物理上位于何处?,.net,assemblies,file-structure,.net,Assemblies,File Structure,我对.NET程序集的物理位置有点困惑。好好休息一下。在我的web.config文件中,它说: <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 这是对LINQ的引用。但是这个DLL的确切位置在哪里呢?上面没有任何路径,也不在我的bin文件夹中 我还有一个我认为是第三方组件参考: <add assembly="MapInf
web.config
文件中,它说:
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
这是对LINQ的引用。但是这个DLL的确切位置在哪里呢?上面没有任何路径,也不在我的bin文件夹中
我还有一个我认为是第三方组件参考:
<add assembly="MapInfo.CoreTypes, Version=4.0.0.483, Culture=neutral, PublicKeyToken=F548BCBA69D4B8DA" />
如果它不在bin
文件夹中,我如何知道它在我的机器上的位置
另外,如果DLL文件位于
bin
目录中,我是否可以假定它不需要在web.config
中引用?我认为它们位于,位于%WINDIR%\Assembly
中。更多信息在(at)中。装配和融合路径探测相当复杂。我要说的是,通常.NET将从以下两个位置之一解析程序集:
为了解决您关于“bin”目录的具体问题,如果您使用的是ASP.NET(我从您对
web.config
的引用中假设),那么是的,您不需要包含路径-ASP.NET将处理它需要执行的任何操作,以便.NET在“bin”目录中查找程序集。第三方程序集可能不在中,有关规则集,请参阅MSDN文章。或者,试试系统内部组件。简单的回答是:它取决于很多事情。框架对如何加载程序集有自己的定义。但是,您可以使用各种配置文件(machine.config等)覆盖此设置。要找出程序集在特定系统上的实际位置,请使用。(它是平台SDK的一部分。只需打开SDK命令shell并运行fuslogvw.exe即可。)程序集主要位于以下任一位置:
- -C:\Windows\Assembly\GAC(Microsoft 在某些情况下由第三方提供 (案例)
- 安装文件夹(大多数 (第三方控制)
通过右键单击项目引用中的程序集并选择属性,可以获取程序集的路径和其他信息。某些.Net程序集位于.Net的安装文件夹中 比如 C:\ProgramFiles(x86)\Reference 程序集\Microsoft\Framework.NETFramework\v4.0
里面有集会。在.NETFramework的上一层中,您可以找到.NET的不同版本及其相应的程序集。您的程序集可能位于URL
file:///C:/Windows/Assembly/GAC/
(希望我能强迫它成为一个链接)MapInfo.CoreTypes呢,如果它是第三方,它会在哪里?如果它已经在gac注册,可能就在那里。“它不在那儿吗?”佩特拉说。他们可能是同性恋。它们可能就是您安装它们的地方。就我个人而言,我希望GAC不存在,而是强制应用程序拥有自己的BIN目录。除非它只是使用dll作为引用添加,如这里的示例所示,在这种情况下,它位于程序文件下的某个位置。否。这些是参考程序集。它们是框架程序集,没有实际实现。