我正在尝试使用SecureInput扩展样本样本,该样本在MS Edge浏览器扩展中演示了Nativemessing功能,并且我遇到了使用VS Community Edition 2017构建后部署扩展的问题。我没有通用Windows平台应用程序开发经验,因此,如果我不知道有一个相当明显的答案,我深表歉意。但是,按照示例中的readme.md行不通,所以在此处发布此问题...
https://github.com/microsoftedge/microsoftedge-extensions-demos/tree/master/master/secureinput
步骤遵循…
- 打开"使用开发人员功能"中的开发人员模式
- 打开Edge Browser的启用扩展开发人员功能:flags。
- 将样本作为邮政编码下载到本地机器。
- 将SecureInput.html复制到我的本地Web服务器
- 在VS中加载了SecureInput.sln社区版2017年有两个选项。。。想尝试INPROC。因此需要选择项目构建配置管理器中的NativeMessagingHostinProcess。其他使用的设置...调试 - 配置;任何CPU - 主动解决方案平台;nativemessaginghostinprocess - x64项目平台使用64位Windows和Edge运行为64位进程出色地;将休息作为默认。
- 使用调试配置和任何CPU解决方案平台构建了整个解决方案。
部署摘要
- 构建了整个SecureInput解决方案。
- 通过运行安装的appx软件包add -appxpackage -register [pathtosecureInputsolutionFolder] NativeMessagingHostinProcess bin x64 debug appxmanifest.xml
- 在建造过程中或从高架电源壳提示中运行add-appxpackage时没有错误。
预期:在此点EdgeBrowser-> MoreOptions->扩展名应列出Appx软件包安装的扩展名(部署摘要/步骤2(。=>>没有发生。
其他一些细节
- 我使用的是64位Win 10创作者构建(1703 - OS构建16063.128(
- 我怀疑添加App-appxpackage无法静静地添加扩展名。冗长的旗帜也没有给我任何线索。
- Get-appxpackage显示新添加的Appx软件包。
名称:AE24A957-5239-43B2-A36C-B96805A58ADE发布者:CN = MSFT建筑:X64ResourceId:版本:1.0.0.0packagefullname:AE24A957-5239-43B2-A36C-B96805A58ADE_1.0.0.0.0.x64__2yx4q2bk84nj4installlocation:[pathtosecureInputsolutionFolder] nativemessagingHostinProcess bin x64 debugiSframework:falsePackageFamilyName:AE24A957-5239-43B2-A36C-B96805A58ADE_2YX4Q2BK84NJ4 PUBLISPURRERERID:2YX4Q2BK84NJ4isResourcepackage:falseisBundle:falseisDevelopmentMode:true专家:false
我想知道是否有人让这个示例有效。如果Microsoft Edge的人们正在监视Stackoverflow,我真的很感谢是否有人跳入帮助您的早期采用者。: - (
在Chee Chen的离线帮助下,我们能够弄清楚SecureInput为什么不起作用。我衷心感谢他竭尽所能提供帮助。在我的具体情况下,以下是错误的事情。
- url清单。json给出了案例敏感的权限。当我第一次在Edge浏览器中第一次输入URL时,我有一个错字。.我输入了SecureInput.html。如果您看到使用较低的case secureinput.html无济于事,请尝试清洁缓存。
- 当指令第一次无法正常工作时,我使用了Add-appxpackage部署扩展名。在这样做的过程中,我在NativeMessagingHostinProcess bin x64 debug appxManifest.xml中选择了appxManifest文件,而不是NativemessagingHostinProcess bin bin x64 x64 debug debug appx appxmanifest.xml。要提防的东西,如果您犯同样的错误,请确保您完全卸载了Appx软件包,然后重新开始。
所以这是我对其他尝试样本的补充说明: - (
- 确保根据目标测试机选择正确的平台。边缘运行为64位进程,因此您的扩展名需要在该平台上进行针对。
- 确保在passwordInputProtection-> program.cs and Extension-> Background.js 中选择正确的AppServiceName
- 我认为passwordInputProtection.csproj在其路径中具有硬编码程序文件(x86(,如果您在32位机器上尝试示例,该文件将中断。在记事本中编辑项目文件,然后在尝试之前对其进行修复。
- 确保正确配置了NativeMessaging Host项目的输出路径...它需要为" bin [platform] [configuration] appx ",而不是" bin [platform] [platform] [configuration] " "
- 如果可以的话,请避免使用错别字,因为我几乎看不到有关事物为什么不起作用的反馈或详细日志。
您是否尝试过按照文档中的部署步骤进行操作?实际步骤和订购很重要:
- 构建和部署NativeMessagingHostinProcess UWP应用程序。
这将生成:
- UWP应用所需的必要二进制文件和文件。
- appx文件夹。
-
基于package.manifest的内容appxmanifest.xml。(package.manifest在此示例中的内容已编辑,以包括边缘扩展的必要条目(。
- 构建密码InputProtection桌面桥。
这将:
- 为该项目构建二进制文件
-
触发一个后构建事件,该事件将将EXE的输出复制到Appx文件夹,然后将扩展文件夹复制到Appx文件夹。
- 现在,这些文件都准备好了,您将需要注册appx。
有两种方法可以完成此操作:
- 从powershell运行add-appxpackage:add-appxpackage -register [appx文件夹的路径] appxmanifest.xml
或
- 部署NativeMessagingHostinProcess项目。Visual Studio将运行相同的PowerShell脚本以从文件夹中注册APPX。