Создавать приложения UWP с помощью Ninja?

Можем ли мы использовать Ninja для создания приложений UWP и, следовательно, создать для них пакет appx? Я не думаю, что есть онлайн-статья об этом. Я знаю, как это сделать с помощью VS и Make.

Вы можете попробовать настроить проект CMake для приложения UWP и использовать генератор Ninja (-GNinja). Это генерирует входные файлы для Ninja, если вы хотите поиграть с этим.

IInspectable 16.09.2018 23:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
214
2

Ответы 2

вы можете создавать приложения uwp следующими способами:

  1. C# и xaml

  2. веб-технологии, такие как html, css и js. и вы можете использовать любой сторонние js-библиотеки с ним. вы даже можете использовать размещенные веб-приложения как приложения uwp или новейшие технологии, такие как pwas, также могут поставляться как uwp apps. подробнее здесь: https://developer.microsoft.com/en-us/windows/pwa

  3. C++ и xaml: с этим подходом вы можете использовать библиотеки C++ (если они соответствуют платформе uwp). Причина, по которой у вас нет большой поддержки в Интернете, заключается в том, что большинство разработчиков uwp используют подход C# и xaml.

Для этого есть некоторая работа, и одна из них - создать настольное приложение, а затем упаковать его в упаковку MSIX, которая упаковывает настольное приложение Windows в приложение uwp, и вы даже можете распространять его через магазин Microsoft.

CMake нельзя использовать для создания пакета UWP. Однако вы можете использовать make.exe или Visual Studio для создания пакета UWP. Для получения дополнительной информации вы можете обратиться к Create an app package with the MakeAppx.exe tool и Пакетирование приложения UWP с помощью Visual Studio.

Дико вводит в заблуждение. Вы можете (возможно, даже должны) создавать приложения UWP с помощью C++. Поскольку Ниндзя (и CMake) предназначены для создания собственных приложений, это довольно важно, и этот предлагаемый ответ ничего из этого не подтверждает.

IInspectable 16.09.2018 12:20

Это все еще неверно. Вы можете писать приложения UWP на C++ без использования XAML. И вы не можешь тоже используете "любая библиотека C++". Библиотеки, которые вы используете, по-прежнему должны соответствовать требованиям, предъявляемым UWP или Microsoft Store. И до сих пор не решается вопрос о том, можно ли использовать Ninja в качестве системы сборки для создания приложений UWP, и если да, то как это сделать. Учитывая ограниченную поддержку UWP, предоставляемую CMake, маловероятно, что Ninja сделает это без настройки значительный.

IInspectable 16.09.2018 22:46

Спасибо за исправление. Я снова отредактировал свой вопрос.

Muhammad Touseef 16.09.2018 22:56

Это все еще не решает вопрос. Ninja - это система сборки, такая как MSBuild, которую вы используете (сознательно или иначе) для преобразования кода и ресурсов в развертываемые пакеты. MSBuild анализирует файлы * .sln и * .csproj, чтобы настроить среду для управления конвейером сборки. Ниндзя берет на себя те же обязанности в естественной обстановке. Вопрос не в том, можете ли вы писать собственные приложения UWP (да, можете и должны!), А в том, можно ли использовать Ninja для настройки процесса сборки, и если да, то как.

IInspectable 16.09.2018 23:25

При копирование другого ответа дословно обычно (даже требуется) указывать авторство. Поскольку утверждение доказуемо неверно (вы можете выполнить команду любой в CMake, используя add_custom_command), вы можете по крайней мере указывать пальцем на других. Похоже, вы изо всех сил пытаетесь дать ответ, требуя знакомства с инструментами и системами, которых вы не знаете или не понимаете. Иногда лучше просто отпустить.

IInspectable 18.09.2018 01:03

Теоретически: да

Примечательно одно: Ninja только официально поддерживает C++, я не могу найти никакого результата Ninja поддерживает другие языки программирования

С C++ у нас есть 2 варианта:

  • C++ / CX: вы должны активировать флаг /ZW для метаданных Windows
  • C++ / WinRT: с WinRT вы просто компилируете без каких-либо ограничений, для этого больше не нужны метаданные Windows

C++ / CX: у нас долгая история разработки среды выполнения Windows до того, как C++ 11/14 стал официальным, поэтому Microsoft добавляет свои собственные функции реализации в MSVC. Таким образом, с C++ / CX вы можете скомпилировать очень старый SDK, такой как 10240, 10586, ... и теоретически он также работает с Windows 8.0 / 8.1 SDK, Windows Phone 8.0 / 8.1 SDK. Еще одна попытка скомпилировать UWP с C++ / CX на FastBuild (системная сборка, такая как Ninja) успешна, вы можете прочитать здесь ссылку: https://github.com/fastbuild/fastbuild/issues/623

C++ / WinRT - это попытка воссоединения среды выполнения Windows со стандартом C++ 17. C++ / WinRT также может компилироваться с Clang / GCC. Основываясь на ответе Кенни Керра (создателя C++ / WinRT): C++ / WinRT не ограничивается старым SDK, но он рекомендовал использовать более новый SDK, такой как 17134. Свяжите его ответ https://stackoverflow.com/a/53193711/8707331.

Некоторые полезные ссылки для C++ UWP:

https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/porting/how-to-use-existing-cpp-code-in-a-universal-windows-platform-app.md

https://modernwindows.wordpress.com/2015/05/28/modern-c-and-clang/

Другие вопросы по теме