【问题标题】:Windows Form app won't run at startup but will run manuallyWindows 窗体应用程序不会在启动时运行,但会手动运行
【发布时间】:2019-01-22 15:09:48
【问题描述】:

我正在尝试在运行 Windows 10 企业版的戴尔笔记本电脑上运行应用程序。它是使用 Visual Studio 用 C# 编写的。该应用程序旨在以管理员权限运行。如果我手动启动应用程序,它工作得很好。当我尝试使用本地组策略编辑器自动运行它时,登录时出现以下错误:“无法启动此应用程序。”

我查看了该错误并最终访问了以下链接:https://support.microsoft.com/en-us/help/2715633/shim-errors-for-the-net-framework-version-and-platform-support。它说:“应用程序的配置方式无法确定 .NET Framework 运行时的适当版本。相应的 shim 代码是 SHIM_NOVERSION_FOUND。”

我使用此处找到的信息:https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed 来确定目标设备上安装了哪些 .NET 框架。有一些,包括 4.0 版。

我使用以下链接中的说明向我的项目添加了一个配置文件:https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5

当我重建项目并尝试在目标机器上运行它时,我得到了和以前一样的错误。

注意:目标计算机处于可能会或可能不会影响应用程序的组策略下。我们不知道。

【问题讨论】:

  • 你的目标是什么框架,你的 app.config 是什么样的?
  • “以管理员权限运行”肯定是问题所在。您无法在启动时使用 UAC 同意对话框提示用户,他将不知道提示出现的原因。所以这被操作系统积极抑制。唯一的解决方法是使用两个应用程序,一个可以自动启动,一个按钮可以启动第二个应用程序,从而触发同意对话框。或计划的任务或服务。
  • 该应用程序用于注销笔记本电脑。这并不是要征求用户的许可,尽管我仍在弄清楚那部分。默认情况下它应该具有管理员权限,而无需询问用户。如果他们不输入他们的姓名,它会将他们从 Windows 中注销。该应用程序还通过注册表阻止访问任务管理器。
  • 这有关系吗?如果我让它正常工作,这样用户就不会遇到 UAC 对话框,那会解决问题吗?还是我还需要从另一个应用程序启动它?
  • 如汉斯所说,通过任务调度器设置启动。

标签: c# .net windows visual-studio group-policy


【解决方案1】:

我对这个问题的最终解决方案是为程序构建一个安装程序,而不是手动将发布版本复制到笔记本电脑

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2017-04-09
    • 1970-01-01
    • 2019-09-06
    • 2019-11-05
    相关资源
    最近更新 更多