使用 Ninja 构建 UWP 应用?



我们可以使用忍者来构建UWP应用程序,从而为其创建appx包吗? 我觉得没有同样的在线文章。我知道如何使用VS和Make来做到这一点。

理论上:是

值得注意的一件事:忍者只是官方支持C++,我找不到任何结果忍者支持其他编程语言

有了C++我们有 2 个选择:

  • C++/CX:您应该激活 Windows 元数据的标志/ZW
  • C++/WinRT:使用WinRT,您只需编译而没有任何限制,这不再需要Windows元数据

C++/CX:在 11/14 正式发布之前C++ Windows 运行时开发背后我们有很长的故事,因此Microsoft将自己的实现功能添加到 MSVC。因此,使用 C++/CX,您可以使用非常旧的 SDK 进行编译,例如 10240、10586、...理论上,它也适用于Windows 8.0/8.1 SDK,Windows Phone 8.0/8.1 SDK。另一个尝试在 FastBuild 上使用 C++/CX 编译 UWP 的尝试(像 Ninja 这样的系统构建(是成功的,你可以在这里阅读作为参考:https://github.com/fastbuild/fastbuild/issues/623

C++/WinRT 是重聚尝试使 Windows 运行时恢复到标准C++ 17。C++/WinRT也可以使用Clang/GCC进行编译。根据Kenny Kerr(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/

可以通过以下方式创建 UWP 应用:

  1. C# 和 XAML

  2. Web技术,如HTML,CSS和JS,您可以使用任何 带有它的第三方JS库。您甚至可以使用托管的 Web 应用程序 作为 UWP 应用程序或最新技术(如 PWAS(也可以作为 UWP 应用程序. 更多在这里 : https://developer.microsoft.com/en-us/windows/pwa

  3. C ++和XAML
  4. :使用这种方法,您可以使用C ++库(如果它们符合UWP平台(,您在线没有太多支持的原因是大多数UWP开发人员使用C#和XAML方法。

有一些解决方法,其中之一是创建一个桌面应用,然后将其打包到 MSIX 打包中,这会将 Windows 桌面应用打包到 uwp 应用中,你甚至可以通过Microsoft应用商店分发它。

CMake不能用于生成 UWP 包。但是,可以使用make.exeVisual Studio来生成 UWP 包。有关详细信息,可以参考Create an app package with the MakeAppx.exe tool和使用 Visual Studio 打包 UWP 应用。

最新更新