对于Assembly.Location,什么决定值是本地路径还是UNC路径?

时间:2012-06-25 19:48:14

标签: c# .net

我正在尝试获取程序集的物理路径并使用Assembly.Location [MSDN]。我的问题是什么决定了本地路径还是UNC路径?我只想要本地路径。

1 个答案:

答案 0 :(得分:0)

来自CodeBase上的MSDN:MSDN on Assembly.CodeBase

  

CodeBase是找到文件的地方的URL,而   位置是实际加载的路径。例如,   如果程序集是从互联网上下载的,它的CodeBase可能会   以“http://”开头,但其位置可能以“C:\”开头。如果   文件被复制了阴影,Location将是复制的路径   阴影副本目录中的文件。

     

知道CodeBase不能保证设置也很好   适用于GAC的程序集。将始终为装配设置位置   但是从磁盘加载。

从这个小例子可以看出,UNC不用于本地组装, 即使是GAC中的那些人:

public void WriteAssemblyLocations()
{
    Assembly[] assList = AppDomain.CurrentDomain.GetAssemblies();
    foreach (Assembly assembly in assList)
    {
        Console.WriteLine(assembly.Location);
    }
}