如何摆脱我的PC应用程序中的UAC警告

时间:2017-04-27 14:37:12

标签: c# windows

我的问题: 我制作了一个PC游戏(使用Visual Studio创建)并通过安装程序创建者将其转换为setup.exe。 运行此安装文件时,用户将从Windows收到此警告:“您是否希望允许来自未知发布者的此应用程序对您的PC进行更改?”我的猜测是我的文件需要在Microsoft以某种方式签名或认证。

我的问题: 任何人都可以告诉我必须遵循的正确步骤,以便用户不会收到此警告吗?

3 个答案:

答案 0 :(得分:7)

在@HarryJonhston的一些建议后,我会更新答案。并在下面发布原始答案。这是更新:

你还没有真正发现真正的问题。如果您的应用程序没有使用EV证书进行数字签名并且从互联网上下载,那么您将获得比这更糟糕的安全提示,并且大多数人将无法在没有指示的情况下通过,因为接受按钮甚至不可见默认情况下(例如,请参见此处http://labsii.com/share-to-speech-office-outlook-plugin-beta/)。

严格来说,为了回答您的问题,您可以获得任何证书,Windows将不再显示在您的设备上的“未知发布者”,它会显示您公司的名称。

但是,由于您可能会将安装程序从您的设备中分发出来,我原先说的一切仍然存在:

您需要使用EV证书对setup.exe进行签名。它们相当昂贵且难以获得。

您也可以在Windows应用商店中发布游戏,以避免提示(它有一些限制,但大多数游戏都不应该有问题),使用桌面应用转换器工具。您需要以Microsoft开发人员身份进行签名,但与其他所有选项(20 $)相比,这是便宜的。

您可能还会获得一张价格较低的常规签名证书,但它不会立即删除提示,只有在Microsoft选择足够数据以确保其安全后才会删除该证书。

答案 1 :(得分:1)

您可以尝试获取我使用的authenticode证书。这是以下链接:https://www.sslshopper.com/microsoft-authenticode-certificates.html

我使用了digicert,他们有很好的响应时间。

答案 2 :(得分:0)

谢谢你们。这里有一个总结,其中包括我自己同时做的一些研究: 解决方案确实通过:

  • Windows Store Publishing:在这种情况下,请注意设置应该是MSI和应用程序UWP。所以在我的情况下,我需要使用Desktop Bridge
  • 进行转换
  • 通过CA(证书颁发机构)购买Authenticode证书。通过signtool.exe进行签名,signtool.exe是SDK的一部分。通过命令提示符屏幕输入签名命令。以下是Symantec是CA的命令行示例: signtool.exe sign / a / s MY / n“appname”/ fd sha256 / tr www.sha256timestamp.ws.symantec.com/sha256/timestamp / v“C:/ .... / mySetup.exe” 注意使用新的哈希:sha256而不是讨论here
  • 中的旧哈希