我有 C# 代码试图获取LocalPath
对于使用以下代码行的执行程序集:
Uri uri = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath;
这段代码对于所有各种路径都表现良好。它开始未能给予权利AbsolutePath
and Localpath
因为执行的程序集路径中包含#。
Assembly.GetExecutingAssembly().CodeBase
gives "C:\c#\ExcelAddin1.1.0\GSRExcelPlugin\bin\Debug\Common.dll"
但是 new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath 给出“C:\c”,而它应该给出“C:\c#\ExcelAddin1.1.0\GSRExcelPlugin\bin\Debug\”。
有什么我需要处理的事情或者 Uri 类的使用方式有问题吗?
如果这是 .net 框架问题,我应该如何向 Microsoft 报告此问题?
System.IO.FileInfo logger = new System.IO.FileInfo(Path.Combine(Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().EscapedCodeBase).LocalPath), "settings.config"));
使用 EscapedCodeBase 而不是 CodeBase 可以解决该问题。我没有意识到这已经被处理了,直到我偶然发现它。:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)