一、准备生成签名所需的材料
1)添加签名AppxManifest.xml文件。在项目右建》添加》xml文件》修改文件名为AppxManifest。
在打开AppxManifest.xml文件,输入以下内容:
Version="1.0.0.0" Publisher="CN=6BB5F6F-C03-4035-BB1E-903407A2"/> .注意:6BB5F6F-C03-4035-BB1E-903407A2是微软应用商店提供的(包/标识/发行商) 保存文件。 二、生成签名 1、执行如下命令 使用New-SelfSignedCertificate 生成签名,Makecert.exe工具以及过时。 New-SelfSignedCertificate -Type Custom -Subject "CN=6BBF5F6F-C023-4035-BB1E-903407A2A71D" -KeyUsage DigitalSignature -FriendlyName "MailTool" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10) 参数使用请查看:https://learn.microsoft.com/zh-cn/powershell/module/pki/new-selfsignedcertificate?view=windowsserver2022-ps 2、执行如下命令 $password = ConvertTo-SecureString -String 123.qwer -Force -AsPlainText 注意:123.qwer是密码,这个要记住,等下给xxx.msi文件签名的时候也会用到. 以下图引用别人的,我自己涉及到微软应用商店,所有就不贴出来了。 3、执行命令导出证书,得根据实际情况修改下路径等信息 Export-PfxCertificate -cert "Cert:\CurrentUser\My\D503BB12D07AFA7A7276CE3D18DB63CCE9AB7685" -FilePath test.pfx -Password $password 我们项目的目录下面已经生成了test.pfx文件 在桌面新建一个文件假,将test.pfx 复制到该该文件中备用。 三、发布项目软件 这个在其他文章中介绍了,这里不在细谈。 四、将发布后的软件,打包成 XXXX.msi文件。XXXX.msi文件复制到桌面的文件假中备用。 这个在其他文章中介绍了,这里不在细谈。 五、给XXXX.msi文件签名 1、用signtool.exe工具给 打包后的【日语五十音图.msi】文件签名。signtool.exe工具在 C:\Program Files (x86) 目录下, 在该目录下查找signtool.exe签名工具。 记录signtool.exe的路径,待会会用到: C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe 2、打开前面在桌面新建的文件夹,然后再路径栏输入cmd 3、输入以下命令,注意这里就用到了签名记录的signtool.exe的路径。 "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f test.pfx /p 123456 /t http://timestamp.digicert.com /v "日语五十音图.msi" 注意:123.qwer是生成签名时候用的密码 4、点击【日语五十音图.msi】右建属性》就可以查看 【日语五十音图.msi】文件已经签名。 六、【日语五十音图.msi】打包成xxxx.msix格式的文件 目的是为日发布微软应用商店。所有还要再此使用test.pfx的签名文件 1)我使用MSIX Packaging Tool打包工具。 2)导入刚才生成的数字test.pfx 文件。输入签名文件用的密码”123.qwer“. 其余的打包过程请查看:https://www.cnblogs.com/cdaniu/p/18090730 总结 简单过程 第一步 New-SelfSignedCertificate -Type Custom -Subject "CN=6BBF5F6F-C023-4035-BB1E-903407A2A71D" -KeyUsage DigitalSignature -FriendlyName "MailTool" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10) 第二步$password = ConvertTo-SecureString -String 123.qwer -Force -AsPlainText 第三步 Export-PfxCertificate -cert "Cert:\CurrentUser\My\CD623FADEE7F99BB8F27D660E3EE55D14353DC7F" -FilePath test.pfx -Password $password 第四步 "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f test.pfx /p 123.qwer /t http://timestamp.digicert.com /v "日语五十音图.msi"