我可以安全地删除对 .pdb 文件的引用吗?

2024-01-21

我正在使用 ASP.NET Core 5.0,因为它刚刚发布不久,今天我注意到一些奇怪的事情。 我为我的软件制作了一个安装程序,它会自动过滤掉进入我的发布版本的每个 .pdb 文件。一种永远不会引起问题的机制。

但是新的.NET 5.0运行时似乎有问题,IIS抱怨找不到该文件运行时/win-x86/native/Microsoft.Data.SqlClient.SNI.pdb.

我想知道为什么缺少调试符号对于发布版本(或任何版本)来说会是一个问题,并做了一些研究。我发现有问题的文件是 en 条目MyProject.deps.json

"Microsoft.Data.SqlClient.SNI.runtime/2.0.1": {
    "runtimeTargets": {
      "runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll": {
        "rid": "win-arm",
        "assetType": "native",
        "fileVersion": "2.0.1.0"
      },
      "runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.pdb": {
        "rid": "win-arm",
        "assetType": "native",
        "fileVersion": "0.0.0.0"
      },
      "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": {
        "rid": "win-arm64",
        "assetType": "native",
        "fileVersion": "2.0.1.0"
      },
      "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.pdb": {
        "rid": "win-arm64",
        "assetType": "native",
        "fileVersion": "0.0.0.0"
      },
      "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": {
        "rid": "win-x64",
        "assetType": "native",
        "fileVersion": "2.0.1.0"
      },
      "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.pdb": {
        "rid": "win-x64",
        "assetType": "native",
        "fileVersion": "0.0.0.0"
      },
      "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": {
        "rid": "win-x86",
        "assetType": "native",
        "fileVersion": "2.0.1.0"
      },
      "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.pdb": {
        "rid": "win-x86",
        "assetType": "native",
        "fileVersion": "0.0.0.0"
      }
    }
  },

如您所见,其中有 4 个 .pdb 文件。我尝试删除导致问题的一个条目,然后繁荣......现在一切正常。只需将 .pdb 文件添加到文件夹中也可以达到目的。所以我已经自己解决了实际问题。

我的问题是:我可以安全地从 .deps.json 中删除条目吗?这可能会导致问题吗? 这可能是微软的一个错误吗?这些条目是偶然滑进去的吗?


从 net core Framework 3.0 开始,它们是必需的(应用程序在某些情况下会失败)。

库以非正统的方式使用这些 PDB,以生成当前正常工作所需的堆栈跟踪和信息。

然而,在C# 交互中未加载本机库 https://github.com/dotnet/SqlClient/issues/675,似乎对于一个全新的客户端,这些依赖关系应该消失,因此不应再发布。

然而,无法加载 DLL“Microsoft.Data.SqlClient.SNI.x86.dll” https://github.com/dotnet/SqlClient/issues/727 and Microsoft.Data.SqlClient.SNI 未与 WebForms 一起部署 https://github.com/dotnet/SqlClient/issues/446#issuecomment-794816156其他人也有问题,特别是在云上部署时,我们所有的 net-5 项目都将它们包含在清单中。这可能是由于实体框架引用旧版本的客户端造成的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以安全地删除对 .pdb 文件的引用吗? 的相关文章

随机推荐

  • Boost::几何联合简化 - 它是如何工作的?

    Boost 中有很棒的几何库 它还允许绘制 SVG 图像 我想在我的一些项目中使用它 但它对我来说真的很奇怪 见下图 所以我们有 3 个像素点 在 2d 空间中表示为正方形 1 1 0 1 pic 1 我们想从它们那里得到一个并集并简化它
  • 无法使用 Selenium 的 chrome 驱动程序

    我在使用 Selenium 的 Chrome 驱动程序时遇到问题 我已下载 chromedriver 并将其保存到 C Chrome driver webdriver Chrome executable path C Chrome 使用它会
  • 如何将 X 和 Y 转换为纬度和经度

    我有一张桌子叫IK TEMP它包含名为 data range 的列 String sql SELECT DATA RANGE FROM IK TEMP try Connection conn this connect Statement s
  • 在 Android 上横向模式下隐藏 URL 地址栏

    使用 JavaScript 如何在横向模式下滚动经过 URL 栏 在纵向模式下 您只需执行 window scrollTo 0 1 即可 但在横向模式下则不起作用 它在 URL 栏上部分运行 关于尝试什么有什么建议吗 有两种方法可以做到这一
  • 如何加速简单连接

    我不擅长SQL 我正在寻找一种方法来加速像这样的简单连接 SELECT E expressionID A attributeName A attributeValue FROM attributes A JOIN expressions E
  • 为什么在基于 Identity Cookie 的身份验证中一段时间​​后 User.Identity.IsAuthenticated 设置为 false

    我正在使用 EF core 在 asp net core 2 0 中开发 API 我已经在中配置了身份cookie身份验证startup cs如下 services ConfigureApplicationCookie options gt
  • 默认路由重定向不适用于 Angular 2 中的延迟加载路由

    我有一个应用程序 分为经过身份验证的部分 InternalRootComponent 和匿名部分 ExternalRootComponent 当我显式导航到路线时 一切正常 但当我转到根目录 时 我不会被重定向 此外 由于某种原因加载了帐户
  • Android Flipboard 动画

    我想在 Android 中更改视图时为 Flipboard 制作动画 是否可以在整个布局上为 Flipboard 制作动画 与图片上的字母相似 但整体布局相似 例如
  • Python Tkinter,在函数之后销毁顶层

    我正在使用 Tkinter 作为 GUI 使用 python 对一些驱动器进行编程 当我的机器运行时 我想向用户显示一个顶级窗口 其中包含一些信息 该窗口应在函数完成后自行关闭 这是我的最小例子 from Tkinter import im
  • 正则表达式匹配所有美国电话号码格式

    首先 我想说我在这里看到了很多例子 并用谷歌搜索过 但没有找到符合我正在寻找的匹配前 3 名而不低于中间值的所有条件 请让我知道如何将它们全部放在一处 xxx xxxxxxx xxx xxxxxxx xxx xxx xxxx xxx xxx
  • 如何添加在所有 cron 作业之前运行的 pre-hook 和 post-hook 脚本?

    假设我有以下 cron 条目 bin date 现在假设我想要在 cron 作业运行之前和之后运行的脚本 我可以将 cron 条目修改为如下所示 bin prehook bin date bin posthook 或者 如果我想要 preh
  • 让 paulirish 的 Infinite-Scroll 在 iPhone 上运行

    我一直在我的网站上实施 Paul Irish 的无限滚动 它可以在桌面浏览器上运行 但在移动设备 特别是 iPhone 上却不能立即运行 解决方法是稍微放大 这使得滚动事件触发 从而触发无限滚动 另请参阅此处的问题报告 https gith
  • 生成安全的 cookie 令牌以持久存储

    我正在尝试为我的网站创建登录和注册页面 我希望使用 cookie 来跟踪用户会话 但我正在尝试以最正确 最安全的方式实现它 我尝试查看教程和论坛 但其中大多数都已经过时 并且使用人们评论不安全的技术 我知道令牌需要随机生成和加密 因此我发现
  • 我应该在哪里重新实现 QApplication::notify 函数?

    我应该在哪里重新实现 QApplication notify 函数 我的意思是 哪个班级 我自己的类之一或 Qt 类的子类并在那里执行 我需要这个 因为我在从服务器下载文件时收到以下错误 小文件下载正常 但大文件会导致此消息 Qt 捕获了事
  • 实体框架包含OrderBy随机生成重复数据

    当我从数据库中检索项目列表 包括一些子项目 通过 Include 并随机排序时 EF 给出了一个意外的结果 我创建 克隆了附加项目 为了更好地解释自己 我创建了一个小型且简单的 EF Code First 项目来重现该问题 首先 我将为您提
  • 如何在Python中获取文件的修改日期/时间? [复制]

    这个问题在这里已经有答案了 如何在Python中获取文件的修改日期 时间 os path getmtime filepath or os stat filepath st mtime
  • C# 将 ISO-8859-1 字符转换为实体编号

    我似乎不知道如何将 ISO 8859 1 字符 例如 转换为它的实体编号 233 我希望能够采用字符串 例如 Steel D cor 并将其转换为 Steel D 233 cor 假设您不关心 HTML 中特殊的 HTML 编码字符 例如
  • 来自网络的“添加到日历”的 href 不适用于 Android 6.0+ 上的本机谷歌日历应用程序

    我们有一些 href 链接到 ics 文件和谷歌日历等 一切都在网络和 iOS 设备上完美运行 但是 当在 Chrome 中从 Android 6 0 链接到 添加到日历 时 它会自动打开 Google 日历 这是预期的 但随后它只是显示
  • 今天的日期 JSP

    我发现自己正在处理一些旧的 JSP 并且想做一些简单的事情 例如以 dd mm yyyy 格式显示今天的日期 好像没那么简单 到目前为止我已经导入了 java util 我尝试过各种事情 比如 String df new SimpleDat
  • 我可以安全地删除对 .pdb 文件的引用吗?

    我正在使用 ASP NET Core 5 0 因为它刚刚发布不久 今天我注意到一些奇怪的事情 我为我的软件制作了一个安装程序 它会自动过滤掉进入我的发布版本的每个 pdb 文件 一种永远不会引起问题的机制 但是新的 NET 5 0运行时似乎