UWP项目的包无法通过本地校验程序

时间:2023-03-09 18:01:44
UWP项目的包无法通过本地校验程序

在UWP工程中,我们打出的包Appx需要通过本地的校验程序校验通过后才可以进行商店的提交。在校验程序汇报的不通过原因当中,除了显而易见的因为美术资源不规范、代码调用不合法API等原因之外,还有一些奇怪的报错。不同类型的项目下报错不尽相同,归纳如下:

1.在Unity模块中调用了D3D12GetDebugInterface接口

表现为UWP项目的包无法通过本地校验程序报错。

解决办法:

在Unity的导出界面,一定要去掉“Development Build”的勾选;

2.在系统模块中调用一些多线程接口

表现为UWP项目的包无法通过本地校验程序报错。

解决办法:

该部分错误是因为没有使用.Net静态编译,.Net Native 静态编译是微软在UWP中提出的新技术。将原先的脚本级别的C#/C++代码编译成类似机器码的Native Code,会在一定程度上导致编译时间变长,但会有效提高执行时的性能变现。

在C#项目中打开.Net Native编译的方法:

a)在.csproj工程文件中,找到打包时使用的输出配置标签,例如UWP项目的包无法通过本地校验程序

b)在其中添加或者修改为UWP项目的包无法通过本地校验程序即可。ARM和X86都需要做此修改。

c)如果是Unity导出的C#项目,一般选择“Master”来进行准提交包的打包操作即可。

在C++项目中打开.Net Native编译的方式:

a)在.vcproj工程文件中,找到打包时使用的输出配置标签,例如UWP项目的包无法通过本地校验程序

b)在其中添加或者修改为UWP项目的包无法通过本地校验程序即可。Win32和ARM都需要做此修改。

c)找到Label为Globals的PropertyGroup标签UWP项目的包无法通过本地校验程序

d)在其中添加或者修改为UWP项目的包无法通过本地校验程序,并确保ApplicationTypeRevision为10.0,而非8.2

3.某些dll文件包含非法标签

表现为UWP项目的包无法通过本地校验程序报错。

解决办法:

在输出特定平台的包时,要确认其中所包含的dll的面向平台标签符合或者是AnyCPU架构。并且,所有引用的Dll都不能是用Debug模式生成的

sOUTHeR.