似乎是 .dll 权限 C# 的问题
Seems to be a issue with .dll permissions C#
我 运行 在我的 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 文件(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 不再需要提升权限。
这解决了我的问题。我发帖是因为这可能对其他人有帮助。