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路徑的位置。 –