首页 >后端开发 >C++ >如何可靠地找到C#组件的目录路径?

如何可靠地找到C#组件的目录路径?

Linda Hamilton
Linda Hamilton原创
2025-01-31 22:51:16876浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn