gpt4 book ai didi

c# - 找到不是直接来 self 的代码的托管异常的来源?

转载 作者:太空狗 更新时间:2023-10-29 17:34:38 24 4
gpt4 key购买 nike

如果这真的是一个 super 用户问题,我提前道歉......我只是不确定,但这似乎更多的是开发人员。方面而不是技术支持方面。 :)

这不一定是个问题,但它确实让我对我的系统完全疯狂。它也只发生在我的电脑上。

当我启动任何应用程序时,即使是空白的 WPF 应用程序,我也会看到四个异常:

A first chance exception of type 'System.IO.DirectoryNotFoundException' occurred in PresentationCore.dll
A first chance exception of type 'System.ArgumentException' occurred in mscorlib.dll
A first chance exception of type 'System.ArgumentException' occurred in mscorlib.dll
A first chance exception of type 'System.InvalidOperationException' occurred in PresentationCore.dll

为了弄清楚这些是从哪里来的,然后我将 VS2008 设置为在任何抛出的 CLR 异常时中断,信息如下:

异常(exception)#1:
找不到路径“D:\Dell\Reader2.0\SPLASH.SYS\fonts\AscenderUni.ttf”的一部分。

异常(exception)#2:
不支持区域性名称“ug”。
参数名称:name

异常(exception)#3:
不支持区域性名称“ug”。
参数名称:name

异常(exception)#4:
没有带有 IetfLanguageTag“ug”的已注册 CultureInfo。

我浏览了 Process Monitor 和 Process Explorer。 Process Monitor 显示我的应用程序正在执行 RegQueryValue,我当然不对此负责...但是一些 DLL(可能来自 Dell crapware)正在被我的进程加载并正在读取此 regkey。然后我查看了 Process Explorer,希望看到我的应用程序正在加载哪些 DLL,但找不到该信息。然后我尝试了 PrcView 并看到了我的应用程序正在加载的模块。

我很惊讶地看到加载了多少其他模块,但我没有看到任何与 Dell 相关的内容。我还想知道 Norton Internet Security DLL 是如何加载到我的进程中的,但我认为这是有意为之的,并且诺顿做了一些特殊的事情来确保进程可以安全执行。

我还能做些什么来识别和删除这些异常的来源?

更新

不确定我在这里得到的内容是否令人困惑。这个异常是在我的应用程序出于某种原因加载的 DLL 中引发的(我没有从我的项目中引用任何与 Dell 相关的内容)。我现在已经卸载了那个应用程序,但我仍然得到愚蠢的异常。从技术上讲这一切都很好,因为异常是在某处处理的,大概是在那个 DLL 中,但我只是很恼火,因为当我运行我的应用程序。叫我懒惰,但我从来没有要求加载这个该死的 DLL。 :)

也许现在是时候使用 msconfig 开始禁用某些 Dell 服务了。等我有空的时候再玩。

最佳答案

没有文件损坏。因为我一直试图追捕这个人一段时间,所以我想出了发生了什么。在此过程中的某个地方,安装了一种带有维吾尔文化的字体,这显然是土耳其/中国文化(据我所知),以及他们的 CultureInfo 标签? “呃”。当字体被缓存时,系统试图加载维吾尔文化。可悲的是,我的 Windows 安装似乎明显缺少 Windows 中的这种文化。知道我不会很快在我的机器上使用文化,我按照 MSDN 上的说明创建并安装了新的文化。

虽然这个错误不会造成任何重大影响。这只是第一次机会异常(exception),毕竟,这让我很烦。这就是我所做的。

  1. 创建一个新的控制台应用程序。
  2. 添加对 sysglobal 的引用。
  3. 添加以下代码:

        var culture = new CultureAndRegionInfoBuilder("ug", CultureAndRegionModifiers.None);
    var ci = new CultureInfo("en-US");
    var ri = new RegionInfo("US");
    culture.LoadDataFromCultureInfo(ci);
    culture.LoadDataFromRegionInfo(ri);
    culture.Register();
  4. 构建。

  5. 从 Windows 资源管理器(您需要管理员权限才能执行此操作),以管理员身份运行已编译的可执行文件。

如果一切顺利,C:\windows\Globalization 中现在应该有一个名为“ug.nlp”的文件。

您不应再收到该消息。

关于c# - 找到不是直接来 self 的代码的托管异常的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com