在Visual Studio中签名Edge WebExtension和UWP应用

时间:2019-03-08 14:51:00

标签: uwp microsoft-edge code-signing appx

我正在为Edge开发WebExtension。我实现了https://docs.microsoft.com/en-us/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service中的示例,该示例正在运行。创建并签署独立的WebExtension可以正常工作,并且生成的.appx安装扩展没有问题。但是现在我需要一个AppServiceProvider来启用本机消息传递。我想构建一个同时安装扩展名和AppServiceProvider的.appx文件。

我将自己的Chrome WebExtenion添加到了AppServiceProvider项目下的文件夹Extension中,并对其进行了调整,以便通信可以根据文档进行。我试图通过双击生成的AppServiceProvider_1.0.0.0_x86_Debug.appx(包括两者)在Edge和AppServiceProvider中安装WebExtension。但是我收到一条错误消息,我要么必须为此应用程序包安装新证书,要么需要带有受信任证书的新应用程序包。我按照https://docs.microsoft.com/en-us/windows/desktop/appxpkg/how-to-create-a-package-signing-certificate中的说明创建了用于测试目的的自签名证书,并将其添加到TrustedPeople证书存储中。对于独立的WebExtension,此方法有效,但是在Visual Studio中签名过程如何工作?

我的.pfx文件在哪里包含在Visual Studio中?

还有其他需要考虑的事情吗?

任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

如何在Visual Studio中签名程序集

您可以使用项目属性窗口的“签名”选项卡对应用程序或组件进行签名(在“解决方案资源管理器”中右键单击项目节点,然后选择“属性”,或者在“快速启动”窗口中键入项目属性,或者在解决方案内部按Alt + Enter)资源管理器)。选择“签名”选项卡,然后选中“对程序集签名”复选框。

指定密钥文件。如果选择创建新的密钥文件,则新的密钥文件始终以.pfx格式创建。您需要新文件的名称和密码。

  

警告

     

您应始终使用密码保护密钥文件,以防止   别人使用它。您还可以通过使用来保护密钥   提供者或证书存储。

您也可以指向您已经创建的密钥。有关创建密钥的更多信息,请参阅创建公共密钥对。

如果您只能访问公共密钥,则可以使用延迟签名来延迟分配密钥。您可以通过选中“仅延迟签名”复选框来启用延迟签名。延迟签名的项目不会运行,并且您无法调试它。但是,通过使用带有-Vr选项的Sn.exe强名称工具,可以在开发过程中跳过验证。

参考:

How to sign an assembly in Visual Studio

答案 1 :(得分:0)

在AppServiceProvider项目中双击Package.appxmanifest,将打开一个包含服务器类别的菜单。在Packaging类别中,单击发布者字段旁边的Choose Certificate...按钮,然后选择.pfx文件。

通过Create App Packages向导创建的appx软件包将使用之前配置的私钥进行签名。

  

应用清单发布者名称必须与的主题名称完全匹配   签名。

可以通过双击安装appx,并且可以运行。但是WebExtension不会安装在Edge中。

参考文献:

Package a UWP app with Visual Studio

Sign an app package using SignTool