2

У меня есть проект Cordova с добавленной платформой Windows 10. У меня также есть собственный плагин, созданный как компонент Runtime Windows (https://github.com/apache/cordova-plugin-globalization). Это отлично работает в режиме отладки, но при попытке сделать пакеты приложений для представления хранилища происходят странные вещи.Кордова Windows 10 родной плагин

Прежде всего, в .jsproj файле UseDotNetNativeToolchain было установлено значение false, если я создаю пакеты с этой конфигурацией, хранилища жалуются на отсутствие Windows.Net.Core. Я узнал, что это означает, что мне нужно включить .net native, поэтому я и сделал. После того, как я отправлю такой пакет .appx, в магазине жалуются: «Вы не можете отправить предварительно скомпилированные .NET-пакеты Native. Загрузите файл appxupload Store и повторите попытку». которого у меня нет.

После некоторого рытья я попытался сделать файл appxupload без Visual Studio, используя MSBuild. Мне удалось составить команду, которая создала бы .appxupload, это было сделано с помощью этих параметров команды:/p: Platform = x86; Configuration = Release/p: UapAppxPackageBuildMode = CI/target: Clean; Publish. Теперь магазин не жаловался, и приложение прошло сертификацию только с ошибкой, когда я ее установил. Похоже, что .net native не правильно упаковывал необходимые исходные компоненты плагина (.winmd, .dlls). И действительно, когда я просто скомпилирую его в режиме выпуска с включенной поддержкой .net, я вижу, что они не включены.

Я должен упомянуть, что команда сборки Cordova терпит неудачу, поскольку она испортила файл appxmanifest, установив идентификатор приложения на идентификационное имя, которое недопустимо для этого поля. Я не мог найти официального способа сделать это, все примеры для простых приложений приветствия, ничего, что включает в себя родные плагины. Поэтому мне интересно, возможно ли это сделать, построить проект cordova с использованием .net native и создать допустимые пакеты .appxupload?

+0

Какая версия инструментов VS Кордова вы используете? Мы сделали множество исправлений ошибок для упаковки Windows. Можете ли вы убедиться, что используете последнюю версию? (Раскрытие информации: Я работаю над инструментами для Apache Cordova в Visual Studio). –

+0

Также: можете ли вы попробовать переехать в Кордову 5.3.3, если вы еще не на нем? (5.4.1 имеет некоторые проблемы с обновлением VS TACO 4). –

+0

У меня была cordova cli 5.2.0. Теперь обновите версию 5.3.3 и попробуйте с этим. Просто отметим, что я не использую Visual Studio для всех платформ кордовы, я добавил платформу Windows через интерфейс командной строки Cordova, а затем открыл проект Windows в Visual Studio. Это нормально? Я подозреваю, что это то же самое, что сейчас меня не интересуют другие платформы. Кроме того, я не уверен, как проверить версию инструментов VS Cordova. Спасибо – stipe

ответ

0

У меня есть именно эта ошибка компиляции, но с плагином cordova-plugin-websql. Я отредактировал jsproj и установил для параметра UseDotNetNativeToolchain значение false. После этого всегда запускается встроенная компиляция (выпуск компиляции для пакетов хранилища). Я сделал тот же тест компиляции с другим плагином cordova, но кажется, что эта сборка начинается, если плагин ссылается на файл winmd.

+0

не заботятся о родной компиляции, когда вы создаете пакет для магазина. самое главное - проверить, сгенерирован ли файл appxupload. см. эту ссылку: https://blogs.windows.com/buildingapps/2015/08/20/net-native-what-it-means-for-universal-windows-platform-uwp-developers/, если вы этого не сделали есть appxupload, см. эту ссылку: http://blogs.msdn.com/b/wsdevsol/archive/2016/01/09/windows-store-app-projects-stopped-generating-the-appxupload-file-after-installing -vs-2015-обновление-1.aspx –

0

Я решил это, удалив файл Store Association из файла .projitems и добавив его в файл .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> 

 Смежные вопросы

  • Нет связанных вопросов^_^