【问题标题】:Downloading an exe without asking for administrator privileges C#在不要求管理员权限的情况下下载 exe C#
【发布时间】:2019-04-02 19:21:48
【问题描述】:

对于我正在开发的 .NET Framework 程序,我设置了一个自动更新程序。它从最新的 github 版本下载一个 7-zip 自解压存档(以 exe 的形式),并运行它来更新程序。问题是,尽管该程序并未安装在需要管理员权限的任何地方,但 Update.exe 始终需要管理员在安装后运行它,尽管通过浏览器下载它时没有必要。有什么办法可以防止这种情况发生吗?这是我当前的设置:

using (WebClient client = new WebClient()) {
    // Add the user agent header, otherwise we will get access denied.
    client.Headers.Add("User-Agent: Other");

    // Full asset streamed into a single string. I.E: https://github.com/soopercool101/BrawlCrate/releases/download/BrawlCrate_v0.14_Hotfix2/BrawlCrate.v0.14.6873.39137.exe
    string html = client.DownloadString(Asset.Url);
    client.DownloadFile(URL, AppPath + "/Update.exe"); // AppPath is defined as whereever the program is installed
}

【问题讨论】:

  • 检查 Update.exe 是否有一个清单告诉 Windows 是否需要管理员权限。如果没有,Windows 将不得不猜测,并且仅文件名“Update.exe”就会导致 Windows 猜测可能需要管理员权限。
  • 同意Daniel,查看文件,Project => Properties => app.manifest, => Security => requestedExecutionLevel
  • 丹尼尔,非常感谢!将其命名为“temp.exe”会使其正确地不需要管理员权限。

标签: c# .net


【解决方案1】:

根据 Daniel 的说法,正是“update.exe”这个名称导致 Windows 认为它​​需要管理员权限。将其下载为“temp.exe”会导致它不再提示管理员批准。

【讨论】:

    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多