2

我有一个有效的代码签名证书。我用它来签署 WPF 应用程序。此应用程序将以管理员身份运行。它有一个有效的 app.manifest。

  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  </requestedPrivileges>

MSIX 文件是使用 MSIX 打包工具构建的。我使用相同的证书签署了 MSIX 应用程序包。appx 清单具有这些功能。

<Capabilities>
    <Capability Name="internetClient" />
    <rescap:Capability Name="runFullTrust" />
    <rescap:Capability Name="allowElevation" />
</Capabilities>

我在运行版本 1903 的 Windows 10 Pro 机器上安装了 MSIX 文件。它安装正确,并表明它是受信任的应用程序。当我启动应用程序时,我看到黄色警告,“此文​​件正在从不受信任的位置运行。” 我希望看到蓝色的 UAC 提升警告,因为应用程序已签名。

我解压了 MSIX 文件并验证了 EXE 是使用代码签名证书进行签名的。这是。我启动了 EXE 文件,我看到了正确的蓝色 UAC 提升警告以及证书中的公司名称。

为什么 Windows 10 认为 WPF 应用程序是从不受信任的来源启动的?

4

1 回答 1

0

首先,如果您是从头开始开发应用程序,您应该使用 Visual Studio 中的 Windows 应用程序打包项目来生成包。MSIX 打包工具仅用于转换为您没有源代码的 MSIX 应用。

来自 MSFT 的 Stefan Wick 在 thiw are 工作,他写了一些关于这个主题的非常有用的教程: https ://stefanwick.com/tag/allowelevation/

在 Twitter 上联系我(如果他还没有注意到这个问题),他可能会知道更多细节。

我怀疑您收到此警告是因为该应用程序是侧载的(即未从 MS Store 安装)并且它还使用了 allowElevation。

只是为了测试。您可以使用相同的证书从包中删除 allowElevation 功能并重新安装它吗?(您可能需要以管理员身份手动启动它,否则它会静默崩溃)。

于 2020-08-25T07:36:07.583 回答