我有一个 Cordova 项目,其中添加了 Windows 10 平台。我还有一个原生插件,构建为Windows运行时组件 (https://github.com/apache/cordova-plugin-globalization)。在调试模式下它运行良好,但尝试制作应用程序包以提交到商店时却出现了奇怪的问题。
首先,在 .jsproj 文件中,UseDotNetNativeToolchain 被设置为 false,如果我使用该配置创建应用程序包,则商店会抱怨缺少 Windows.Net.Core。我发现这意味着我需要启用 .net native,所以我这样做了。当我提交这样的 .appx 包时,商店会抱怨:“您不能提交预编译的 .NET Native 包。请上传 Store appxupload 文件并重试。”而我没有这个文件。
经过一些探索,我尝试使用 MSBuild 在没有 Visual Studio 的情况下创建 appxupload 文件。我成功地组成了一个命令,可以生成 .appxupload,这是通过这些命令参数完成的:/p:Platform=x86;Configuration=Release /p:UapAppxPackageBuildMode=CI /target:Clean;Publish。现在商店没有抱怨,应用程序通过了认证,但安装时失败。看起来 .net native 没有正确地打包插件所需的本机组件(.winmd、.dlls)。实际上,当我只是启用 .net native 并以发布模式编译时,我发现这些组件没有被包含。
我必须提到 Cordova 的构建命令失败了,因为它通过将应用程序 ID 设置为标识名称来搞乱 appxmanifest 文件,而这对于该字段无效。我找不到任何正式的方法来做到这一点,所有的例子都是针对简单的 hello world 应用程序,没有包括原生插件。所以我想知道是否可能构建使用 .net native 的 Cordova 项目并生成有效的 .appxupload 包?
首先,在 .jsproj 文件中,UseDotNetNativeToolchain 被设置为 false,如果我使用该配置创建应用程序包,则商店会抱怨缺少 Windows.Net.Core。我发现这意味着我需要启用 .net native,所以我这样做了。当我提交这样的 .appx 包时,商店会抱怨:“您不能提交预编译的 .NET Native 包。请上传 Store appxupload 文件并重试。”而我没有这个文件。
经过一些探索,我尝试使用 MSBuild 在没有 Visual Studio 的情况下创建 appxupload 文件。我成功地组成了一个命令,可以生成 .appxupload,这是通过这些命令参数完成的:/p:Platform=x86;Configuration=Release /p:UapAppxPackageBuildMode=CI /target:Clean;Publish。现在商店没有抱怨,应用程序通过了认证,但安装时失败。看起来 .net native 没有正确地打包插件所需的本机组件(.winmd、.dlls)。实际上,当我只是启用 .net native 并以发布模式编译时,我发现这些组件没有被包含。
我必须提到 Cordova 的构建命令失败了,因为它通过将应用程序 ID 设置为标识名称来搞乱 appxmanifest 文件,而这对于该字段无效。我找不到任何正式的方法来做到这一点,所有的例子都是针对简单的 hello world 应用程序,没有包括原生插件。所以我想知道是否可能构建使用 .net native 的 Cordova 项目并生成有效的 .appxupload 包?