vs2017编译项目报错,错误如下:
解决方案将工具换成2017版本就可以了,操作如下项目右键选择属性
平台工具集下拉选择Visual Studio 2017(v141)
问题2
打包出现错误:APPX0108指定证书已过期,要求续订证书(忘记截图了)
这时候会有提示去这个网址:https://docs.microsoft.com/zh-cn/previous-versions/br230260(v=vs.110),按照续订证书的操作就可以了
续订证书
Visual Studio 生成的默认证书将在一年后的证书创建日期到期。在证书过期之前,必须使用应用程序清单设计器重新生成证书,或如前面的过程所述提供不同的有效证书。
续订证书
-
在**“解决方案资源管理器”中,打开 .appxmanifest 文件的快捷菜单,选择“打开方式”,然后选择“应用程序清单设计器”**。
-
在**“应用程序清单设计器”中,选择“打包”选项卡,然后选择“选择证书”**按钮。
-
在**“选择证书”对话框中,展开“配置证书”列表,然后选择“创建测试证书”**。
-
在**“创建测试证书”对话框中,单击“确定”**按钮。
Visual Studio 会重新生成该证书,它具有新的到期日期。
附上文字说明(l链接:https://docs.microsoft.com/zh-cn/previous-versions/br230260(v=vs.110))
对应用程序包签名(Windows 应用商店应用程序)
默认情况下,Visual Studio 生成的所有应用程序包都使用测试证书进行签名。在创建包时,Visual Studio 将生成包括签名包本身的文件夹。该文件夹中包括的证书 (.cer) 文件包含用于对包进行签名的公钥。在安装应用程序包之前,必须在计算机上安装此密钥。
生成测试证书
在创建项目时,会生成证书文件 (.pfx) 并将其添加到项目中。
证书的“主题”字段设置为源清单 (.appxmanifest) 文件的 Identity 元素的 Publisher 特性。
-
如果创建本地包,则 Publisher 特性的默认值为您的用户名。
-
如果为 Windows 应用商店创建包或将您的应用程序与其关联,则在包创建期间登录时,Publisher 特性将设置为从 应用商店的开发人员帐户中获取的 Publisher ID。
证书创建过程还会向项目文件中添加属性:
<PackageCertificateKeyFile> RisingStar_TemporaryKey.pfx </PackageCertificateKeyFile>
PackageCertificateKeyFile 的值是源证书本身的相对路径或完整路径。
如果缺少证书,则它在从**“存储”**菜单创建包时创建,而不是在命令提示符中创建包时创建。在 Visual Studio 创建证书时,会设置以下属性的值:
-
**“基本约束”**扩展的值设置为 Subject Type=End Entity。
备注
基本约束扩展标识证书的主体是否为证书颁发机构 (CA)。此扩展还定义包括此证书的有效证书路径的最大深度。“基本约束”属性指定认证的公钥是否可以验证证书签名。
-
“增强型密钥用法”(EKU) 扩展的值将设置为**“代码签名”**。
证书在创建之日起一年内有效。有关如何续订证书的信息,请参见续订证书。
提示
如果在签名过程中出现类似于“指定的证书无效,因为它已过期或有其他发行版”的错误,请使用清单设计器创建一个测试证书来替换旧证书。
验证证书
在打包过程中,Visual Studio 会通过以下方式验证指定的证书:
-
验证**“基本约束”**扩展是否存在以及它的值,该值必须是 Subject Type=End Entity 或未指定。
-
验证**“增强的键用法”属性的值,这必须包含“代码签名”,也可以包含“生存期签名”**。禁止任何其他 EKU。
-
验证**“KeyUsage (KU)”属性的值,该值必须是“Unset”或“DigitalSignature”**。
-
验证私钥是否存在。
-
验证证书是否处于活动状态、尚未过期并且未被撤消。
在某些情况下,您可能需要更好地控制使用的证书以及对证书运行的验证检查。MSBuild 属性 EnableSigningChecks 可控制执行上述哪些证书检查。如果将该属性设置为 True(默认值),则 Visual Studio 会运行所有检查。如果将该属性设置为 False,则 Visual Studio 将仅执行下列任务:
-
验证私钥是否存在。
-
验证**“增强型密钥用法”属性的值是否包含“代码签名”**。
-
验证证书是否处于活动状态、尚未过期并且未被撤消。
备注
当 EnableSignignChecks 设置为 False 时,PowerShell 脚本可能不起作用,因为自定义证书可能不符合该脚本安装应用程序包所需的所有规则。有关更多信息,请参见本地共享应用程序包(Windows 应用商店应用程序)。
选择备用证书
Visual Studio 会在创建项目时自动创建一个证书,但你也可以创建自己的证书或使用现有证书对包签名。
创建或使用备用证书
-
在**“解决方案资源管理器”中,打开 .appxmanifest 文件的快捷菜单,选择“打开方式”,然后选择“应用程序清单设计器”**。
-
在**“应用程序清单设计器”中,选择“打包”选项卡,然后选择“选择证书”**按钮。
-
在**“选择证书”对话框中,展开“配置证书”**列表,然后选择以下选项之一:
-
从证书存储中选取
从操作系统的证书存储中选取Personal证书之一。 -
从文件中选择
从文件系统中选取现有证书文件。 -
创建测试证书
使用所选择的Publisher ID 创建证书。还可以创建密码。
-
无论选择哪个选项,证书文件都会添加到项目中,并相应地更新 PackageCertificateThumbprint 和 PackageCertificateKeyFile 项目属性。
备注
如果在签名过程中出现类似于“指定的证书无效,因为它已过期或有其他发行版”的错误,请使用清单设计器创建一个自定义证书来替换旧证书。
续订证书
Visual Studio 生成的默认证书将在一年后的证书创建日期到期。在证书过期之前,必须使用应用程序清单设计器重新生成证书,或如前面的过程所述提供不同的有效证书。
续订证书
-
在**“解决方案资源管理器”中,打开 .appxmanifest 文件的快捷菜单,选择“打开方式”,然后选择“应用程序清单设计器”**。
-
在**“应用程序清单设计器”中,选择“打包”选项卡,然后选择“选择证书”**按钮。
-
在**“选择证书”对话框中,展开“配置证书”列表,然后选择“创建测试证书”**。
-
在**“创建测试证书”对话框中,单击“确定”**按钮。
Visual Studio 会重新生成该证书,它具有新的到期日期。
删除或导出证书
您可能需要删除或导出已过期或者已被破坏、损坏或被另一个证书替换的证书。有关如何删除或导出证书的信息,请参见如何使用证书控制台。
修改已安装的应用程序
如果修改已安装程序包中的任何文件,签名验证可能会阻止该应用程序启动。若要修改程序包,请使用开发人员许可证在原始的源文件中进行更改,然后重新部署已修改的程序包。有关开发人员许可证的详细信息,请参见获取开发人员许可证(Windows 应用商店应用程序)。