如果路径包含“#”,System.Uri 无法给出正确的 AbsolutePath 和 LocalPath

2023-12-02

我有 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(使用前将#替换为@)

如果路径包含“#”,System.Uri 无法给出正确的 AbsolutePath 和 LocalPath 的相关文章

  • 按成员序列化

    我已经实现了template
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • R、RDCOMClient 和 Outlook:使用共享地址访问收件箱消息

    我在 Outlook 中有几个收件箱 电子邮件受保护 加上一些共享收件箱 例如 电子邮件受保护 例如 或者 电子邮件受保护 依照指示这个方法我正在尝试访问我自己的收件箱中的电子邮件 问题是 有时 收件箱访问邮件 电子邮件受保护 有时它可以是
  • MySQL 时区

    是否有 MySQL 时区的详尽列表 看来有效值time zoneMySQL 中的设置取决于主机操作系统 但我无法找到可能值的列表 我需要时间显示卡尔加里当地时间 默认情况下 至少在基于 Debian 的安装中 不会将时区数据加载到 MySQ
  • Google 地图 API RefererNotAllowedError

    我创建了一个用于 Google Maps JavaScript API 的 Google 密钥 一切正常 直到我添加到下面的凭据接受来自这些 HTTP 引荐来源网址的请求 我以这种格式添加了引荐来源网址 example com 根据凭证页面
  • Android isodep.isConnected() 返回 false 且最大收发长度:0 字节,对于 B 型卡。

    我正在开发一个 Android 应用程序 需要读取并显示 B 型卡中的数据 卡连接良好 但是当isodep isConnected 被调用它返回 false 我扫描了这张卡TagInfo应用程序 由 NXP 提供 可在 Play Store
  • JAudioTagger 和 Android - 更改 mp3 中的值?

    我可以从音频文件中读取标题 艺术家 专辑封面和其他信息等元信息 但我从未能够成功写入元信息 大家有这方面的经验吗 有比 JAudioTagger 更好的库吗 我会提供一些示例代码 但我尝试了十几种不起作用的方法 就像是 AudioFile
  • 无扩展名文件上的 Eclipse 语法高亮显示?

    我有一个 perl CGI 脚本 需要具有特定的无扩展名文件名才能从使用它的软件正确运行 我在 Ubuntu 11 04 Linux 上使用 Eclipse 3 7 0 作为我的 IDE 它不会突出显示文件上的语法 也不会使用有限的自动完成
  • Node.js 错误:连接 ECONNREFUSED

    我是节点新手 在一个简单的教程中遇到了这个错误 我在 OS X 10 8 2 上从 CodeRunner 和终端尝试此操作 我也尝试过将我的模块放入node modules folder 我可以看出这是某种连接问题 但我不知道为什么 eve
  • Spring 集成流程异步中的错误处理

    我有以下 Spring Integration 配置 它允许我从 MVC 控制器调用网关方法并让控制器返回 而集成流将在不阻塞控制器的单独线程中自行继续 但是 我无法弄清楚如何让我的错误处理程序适用于此异步流程 我的网关定义了错误通道 但由
  • SQL选择每个部门最大销售额的日期[重复]

    这个问题在这里已经有答案了 我对编写一个棘手的查询感到困扰 我有下表 对于每个部门 我想打印利润最大的日期 我尝试自己提出这样的查询 Select DISTINCT Name Date sale MAX A as B FROM SELECT
  • 如何在 CSS 中应用从外到内的渐变,仅应用于边框?

    根据 MDN 文档 这似乎没有得到明确支持 所以我在下面的链接代码笔中尝试如下 我知道嵌套 div 是丑陋的 不能成为一个好的可重用样式组件 但我不知道还有什么方法可以达到这种效果 任何有关尝试实现此目标的方法的指导将不胜感激 这是演示我当
  • 无法从维基百科 API 获取数据

    let dataObj const query marvel fetch https en wikipedia org w api php action query titles query prop revisions rvprop co
  • 空手道加特林:未拾取对功能文件的更改

    我正在尝试构建一系列触发空手道场景的加特林测试 我对功能文件所做的更改只是偶尔会被加特林拾取 例如 在下面的功能文件代码中 运行前四项 包括注释掉的 relationships 行 Feature This feature attempts
  • 为什么 .split("\\") 会生成异常?

    我有一个代表目录的字符串 其中 用于分隔文件夹 我想根据 String address C saeed test String splited address split 然而 这给了我一个java util regex PatternSy
  • 使用 HTML 文件输出 PDF

    我有一个 HTML 文件 我用它来发送电子邮件 但在某些情况下 我希望它只是使用该文件来创建相同模板的 PDF 我已经让它大部分正常工作了 它创建文件 运行评估并获取内容 但它实际上并不渲染 html 它只是将所有 html 符号保留在原处
  • ASP.NET 5 添加应用程序作为 IIS 应用程序

    我正在将一些应用程序从 ASP NET 5 beta7 迁移到 RC1 使用 HTTPPlatformHandler 我可以将这些 ASP NET 5 RC1 应用程序作为 IIS 站点的根运行 但它们不会作为站点的子目录 右键单击 添加应
  • 如果在 R 的另一个列表中找到 id,则删除数据框的行

    我有一个数据框final其中每个观察值在称为的列中都有一个 idfinal workerId如果在另一个名为的列表中找到这些行的 ID 我想删除该数据框的一些行omit这是我尝试过的 final lt read csv the data c
  • 将嵌套 Foreach 转换为 Linq

    我正在尝试使用 LINQ 重写以下内容 foreach WMCommon Services StakeOut assembly ass in assemblies foreach var agg in aggregate if agg ca
  • 延迟Google Cloud功能

    我有一个与 Google Firebase 配对的 swift iPhone 应用程序 在应用程序中 用户将完成一个操作 按下按钮 此时 我想安排一个 Google Firebase 函数在用户操作后 45 分钟运行 但是 我希望当 iPh
  • JS - 不带前导零或仅零的数字正则表达式

    我正在尝试编写货币的正则表达式 没有逗号或 符号或句点 只有整数 但我遇到了困难 我需要一个数字 作为字符串 来匹配要验证的模式 以下是我需要的 1 数字可以是单个零2 数字不能有前导零 有效输入 0 12345 1230 无效的 00 0
  • 如果路径包含“#”,System.Uri 无法给出正确的 AbsolutePath 和 LocalPath

    我有 C 代码试图获取LocalPath对于使用以下代码行的执行程序集 Uri uri new Uri Assembly GetExecutingAssembly CodeBase LocalPath 这段代码对于所有各种路径都表现良好 它