【问题标题】:kernelbase error when forcing wpf app to run as administrator强制 wpf 应用程序以管理员身份运行时出现 kernelbase 错误
【发布时间】:2021-09-09 14:21:20
【问题描述】:

我们有一个使用 .net core 3.1 编写的 wpf 应用程序。 因此,为了强制 wpf 以管理员身份运行,我们添加了 appmanifest 文件并进行了更改:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

以下行添加到 project.csproj 文件:

<ApplicationManifest>app.manifest</ApplicationManifest>

在完成所有之前的步骤并发布应用程序后,我们在 windows eventviewer 中遇到错误: 错误应用程序名称:WpfVideoCourseApp.Presentation.exe,版本:1.0.0.0,时间戳:0x60776cd9 错误模块名称:KERNELBASE.dll,版本:10.0.19041.1151,时间戳:0x891df6d3 异常代码:0xe0434352 故障偏移:0x0000000000034ed9 故障进程ID:0x2ac8 错误应用程序启动时间:0x01d7a5852476cbd1 错误的应用程序路径:E:\VideoCourseApp\WpfVideoCourseApp.Presentation.exe 错误模块路径:C:\Windows\System32\KERNELBASE.dll 报告 ID:d9b3e20f-55dc-4dd2-b0ad-40e940dedaa6 故障包全名: 错误的包相关应用程序 ID:

但毕竟我应该说:应用程序在使用调试文件时运行没有任何问题(问题都与应用程序的已发布版本有关)

更新: 在发布时,当我运行应用程序时,应用程序尝试在 Windows 文件夹中写入一些内容并且访问将被拒绝(但在运行调试代码时不会发生这种情况) 实际上,我添加了清单文件以允许在某些特殊路径(如文档文件夹)中读取和写入我的文件,但它只在调试中工作

【问题讨论】:

    标签: wpf .net-core runas


    【解决方案1】:

    恐怕您无法以管理权限运行 ClickOnce 部署的应用程序。

    作为一种解决方法,您可以考虑implement your app 以管理员身份启动新进程或选择其他部署策略。

    【讨论】:

    • 我没有使用 clickOnce ,我的实现结果和你说的一样(新进程..) ,两者都适用于调试并且两者都不适用于发布。在发布时,当我运行应用程序时,应用程序尝试在 Windows 文件夹中写入内容,访问将被拒绝(但在运行调试代码时不会发生)
    • 那么您究竟是如何发布应用程序的呢?
    猜你喜欢
    • 2012-08-08
    • 2013-06-17
    • 2011-12-29
    • 2011-02-18
    相关资源
    最近更新 更多