我有一个科尔多瓦项目与视窗10平台添加。我还有一个本机插件,构建为Windows Runtime Component (https://github.com/apache/cordova-plugin-globalization)。这在调试模式下工作得很好,但当尝试将应用程序包用于商店提交时,会发生奇怪的事情。
首先,在.jsproj文件中,UseDotNetNativeToolchain设置为false,如果我使用该配置创建包,则存储会抱怨缺少Windows.Net.Core。我发现这意味着我需要启用.net原生功能,所以我就启用了。在我提交了这样的.appx包之后,商店抱怨道:“你不能提交预编译的.NET本地包。请上传商店的appxupload文件,然后重试。”而我却没有。
在深入研究之后,我尝试在没有Visual Studio的情况下,使用MSBuild来制作appxupload文件。我设法编写了一个生成.appxupload的命令,这是通过以下命令参数完成的: /p:Platform=x86;Configuration=Release /p:UapAppxPackageBuildMode=CI /target:Clean;Publish。现在,商店没有抱怨,应用程序通过了认证,但当我安装它时,它却失败了。看起来.net native没有正确打包插件所需的本机组件(.winmd、.dlls)。实际上,当我在启用了.net原生功能的发布模式下编译它时,我发现这些都没有包括在内。
我不得不提到Cordova build命令失败,因为它将应用程序id设置为对此字段无效的身份名称,从而扰乱了appxmanifest文件。我找不到任何官方的方法来做到这一点,所有的例子都是简单的hello world应用程序,没有包含本机插件的。所以我想知道这是不是可以做到,使用.net原生构建cordova项目并生成有效的.appxupload包?
发布于 2016-03-17 15:14:02
我已经通过从.projitems文件中删除Store Association文件并将其添加到.jsproj文件中解决了这个问题。之后,Visual Studio再次生成.appxupload文件。此处提供更多帮助:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/9b4cc8dc-c87b-4f62-a244-8d115683560b/appxupload-file-is-not-generated?forum=wpdevelop
从.projitems中删除:
<None Include="$(MSBuildThisFileDirectory)Package.StoreAssociation.xml" />添加到.jsproj:
<ItemGroup>
<None Include="Package.StoreAssociation.xml" />
</ItemGroup>发布于 2016-03-08 22:03:48
我确实有这个编译错误,但是使用cordova- plugin -websql插件。我已经编辑了jsproj并将所有UseDotNetNativeToolchain设置为false。在那之后,本机编译总是开始(存储包的发布编译)。我已经用不同的cordova插件做了相同的编译测试,但是如果插件引用了winmd文件,似乎这个本机编译就开始了。
https://stackoverflow.com/questions/34722250
复制相似问题