gpt4 book ai didi

c# - 似乎是 .dll 权限 C# 的问题

转载 作者:可可西里 更新时间:2023-11-01 11:49:42 25 4
gpt4 key购买 nike

我在我的 C# 应用程序中遇到了一个奇怪的问题。我的应用程序使用一些外部 .dll 文件(用于外部数据库访问的 MySQL 和用于错误报告的 NBug),这些文件存储在与主 .exe 相同的目录中。

安装我的应用程序并从开始菜单运行它后,它加载并工作正常,这确认 mysql.dll 正在正常访问。但是,当应用程序崩溃时(由于未处理的异常),通常会弹出 NBug 错误处理程序,但它不会。而是显示 Windows 风格的错误报告程序。

在执行进一步调查后,如果我从程序文件以外的位置运行该应用程序,例如在我的桌面上,NBug 报告器加载正常。这让我相信这可能是一个权限问题。所以我尝试以管理员身份从 Program Files 运行该应用程序,然后 Nbug 报告器工作正常!

为什么会这样?让用户每次启动应用程序时都以管理员身份运行应用程序并不理想,让应用程序在启动时请求管理员权限也不是理想的选择。它不需要我这样做。

它似乎也只能在 Windows 10 上以这种方式工作。我在 Windows 7 和 XP 上运行了很多次,但没有出现这个问题。 Win 10 中是否有某种权限更改?但为什么 Mysql.dll 按预期工作,而 NBug 却没有?

最佳答案

好的,我已经找到问题了。显然在 Windows 7/8/10 中,Microsoft 添加了 UAC,它需要用户授予程序权限以提升权限。在 XP 中,我相信这是自动的,无需用户干预。

现在 NBug 需要这些提升权限的原因是因为在调用时,它会写入位于同一目录中的日志文件。因此,通过禁用日志记录,NBug 不再需要提升的权限。

这解决了我的问题。我发帖是因为这可能对其他人有帮助。

关于c# - 似乎是 .dll 权限 C# 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33088807/

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