我有C#代码试图LocalPath使用以下代码行获取正在执行的程序集:
Uri uri = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath;
这段代码适用于各种路径.它开始失败给出正确的AbsolutePath,Localpath因为执行的程序集路径包含一个#.
Assembly.GetExecutingAssembly().CodeBase 给 "C:\c#\ExcelAddin1.1.0\GSRExcelPlugin\bin\Debug\Common.dll"
但是新的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"));
Run Code Online (Sandbox Code Playgroud)
使用EscapedCodeBase而不是CodeBase解决了这个问题.我知道这已经处理好了,直到我偶然发现它.:)
| 归档时间: |
|
| 查看次数: |
3729 次 |
| 最近记录: |