0
我正在尝试获取程序集的物理路径,并且正在使用Assembly.Location [MSDN]。我的问题是决定是否返回本地或UNC路径的问题?我只想要本地路径。对于Assembly.Location,什么决定了值是本地还是UNC路径?
我正在尝试获取程序集的物理路径,并且正在使用Assembly.Location [MSDN]。我的问题是决定是否返回本地或UNC路径的问题?我只想要本地路径。对于Assembly.Location,什么决定了值是本地还是UNC路径?
从MSDN上的基本代码是在这里:MSDN on Assembly.CodeBase
的代码库的URL,该文件被发现的地方,而 位置是从它被实际加载的路径。例如,如果程序集是从互联网上下载的,则其代码库 可能以 开头为“http://”,但其位置可能以“C:\”开头。如果 文件被阴影复制,则该位置将作为影子副本目录中文件 副本的路径。
很高兴知道CodeBase不能保证在GAC中为组件设置 。然而,从磁盘加载的组件 的位置将始终设置。
你可以从这个小例子中看到,UNC不用于地方议会, 即使对那些在GAC:
public void WriteAssemblyLocations()
{
Assembly[] assList = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assList)
{
Console.WriteLine(assembly.Location);
}
}
有趣的,但我的问题是关于什么情况下会导致大会。返回本地路径与UNC路径的位置。 –