.net Mono程序集文件夹?

.net Mono程序集文件夹?,.net,mono,cross-platform,.net,Mono,Cross Platform,在windows系统上,注册表具有如下键: HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx 用于除gac以外的dot net程序集文件夹的位置 非win mono系统是否有检索这些信息的方法,或者只是被认为不重要?注册表不是跨平台的。它也不是存储配置数据的好地方。不要在.NET中使用注册表,除非您正在处理遗留代码 GAC将在Mono和.NET中为您跟踪全局程序集。任何本地程序集都应与程序的其余部分一起保存 如果

在windows系统上,注册表具有如下键:

HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx

用于除gac以外的dot net程序集文件夹的位置


非win mono系统是否有检索这些信息的方法,或者只是被认为不重要?

注册表不是跨平台的。它也不是存储配置数据的好地方。不要在.NET中使用注册表,除非您正在处理遗留代码

GAC将在Mono和.NET中为您跟踪全局程序集。任何本地程序集都应与程序的其余部分一起保存

如果您确实需要这些位置(而且不应该),那么您应该在配置文件中手动指定这些位置


为什么要查找GAC中程序集的物理位置?

首先,Linux上的Mono将GAC存储为文件、路径和两者之间的链接列表。大多数创建基本mono运行时的代码都使用名为mono_Assembly的编译时标志。在生成系统中,此值默认设置为$prefix/lib

在大多数linux发行版上,$prefix被设置为“/usr”,因此
MONO\u程序集将是/usr/lib。
记住这一点,GAC的实际基本路径是
$prefix/lib/mono/GAC
。您还可以为mono(
mono\u GAC\u PREFIX
)设置一个环境变量,该变量允许您为GAC设置多个基本路径

由于此路径可以在每次安装时更改,并且mono允许使用环境变量的多个路径,因此您可能需要获取的基本路径。此外,还将帮助您确定是否需要检查其路径


我希望这有帮助

为什么要这样?安装程序是在Applicationdirectory或AssemblyCache中安装程序集的安装程序-您的代码与这些文件夹无关。“您的代码与这些文件夹无关”您怎么知道。我从来没有说过我的代码。那么请解释为什么你需要知道这个位置。很可能你正在做一些你不应该做的事情。@skolima请不要告诉我我应该做什么和不应该做什么。不是每个人都像你。我已经改写了问题。我不是在评判,我只是想帮忙。更多的上下文将是有用的,因为您的问题并不琐碎。