在Windows系统上,注册表具有以下键:
HKLM \ SOFTWARE \微软\ .NETFramework \ V2.0.50727 \ AssemblyFoldersEx
用于除gac之外的点网组件文件夹的位置。
非胜利单声道系统是否有办法检索这些或者它被认为不重要?
答案 0 :(得分:5)
注册表不是跨平台的。它也不是存储配置数据的好地方。除非您正在处理遗留代码,否则请勿在.NET中使用该注册表。
GAC可以在Mono和.NET中为您跟踪全局程序集。任何本地程序集都应与程序的其余部分保持一致。
如果您确实需要这些位置(而且不应该这样),那么您应该在配置文件中手动指定这些位置。
为什么要查找GAC中的程序集的物理位置?
答案 1 :(得分:3)
首先,Linux上的Mono将GAC存储为两者之间的文件,路径和链接列表。创建基本单声道运行时的大多数代码都使用名为MONO_ASSEMBLIES的编译时标志。默认情况下,此值在构建系统中设置为$ prefix / lib。
在大多数Linux发行版上,$ prefix设置为“/ usr”,因此MONO_ASSEMBLIES
将是/ usr / lib。
考虑到这一点,GAC的实际基本路径为$prefix/lib/mono/gac
。您还可以为单声道(MONO_GAC_PREFIX
)设置环境变量,以便为GAC设置多个基本路径。
由于此路径可以按安装更改,而mono允许使用环境变量的多个路径,因此您可能需要获取Assembly.Location的基本路径。此外,Assembly.GlobalAssemblyCache将帮助您确定是否需要检查其路径。
我希望这有帮助!