首頁 > 後端開發 > C++ > 如何可靠地找到C#組件的目錄路徑?

如何可靠地找到C#組件的目錄路徑?

Linda Hamilton
發布: 2025-01-31 22:51:16
原創
822 人瀏覽過

How Can I Reliably Find the Directory Path of My C# Assembly?

在C#中獲取程序集路徑

在單元測試中,經常需要訪問當前執行代碼所在程序集的路徑,以便定位相關的資源,例如XML文件。

直接使用Environment.CurrentDirectory 並不總是可靠的,因為它通常指向測試框架的路徑,而不是被測試的程序集。類似地,Assembly.GetExecutingAssembly().Location 在某些測試工具中可能會返回意外的臨時路徑。

為了解決這個問題,可以使用Assembly.CodeBase 屬性獲取執行程序集的URI。通過UriBuilder,可以從該URI中提取未編碼的文件路徑。最後,使用Path.GetDirectoryName 獲取程序集的目錄路徑。

下面的代碼片段定義了一個輔助屬性,用於提供程序集目錄路徑:

<code class="language-csharp">public static string AssemblyDirectory
{
    get
    {
        string codeBase = Assembly.GetExecutingAssembly().CodeBase;
        UriBuilder uri = new UriBuilder(codeBase);
        string path = Uri.UnescapeDataString(uri.Path);
        return Path.GetDirectoryName(path);
    }
}</code>
登入後複製

在測試代碼中,只需訪問此屬性即可:

<code class="language-csharp">var assemblyDirectory = AssemblyDirectory;</code>
登入後複製

這種方法在使用NUnit和MbUnit的各種單元測試場景中都證明是可靠的,確保始終可以檢索正確的程序集路徑。

以上是如何可靠地找到C#組件的目錄路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板