Git Product home page Git Product logo

windows-app-rs's Introduction

This repository has been archived

The windows-app project was an experimental crate letting you call APIs from the Windows App SDK based on the technology from the windows crate. The Windows App SDK is however largely a vehicle for delivering out-of-band releases of Xaml, which is itself designed squarely for C# developers. While every effort has been made to support Rust, the Windows App SDK in its current form is too heavily tied to .NET and Visual Studio to be practically usable with other languages and toolchains. We hope this will change in future but for now this project has been archived.

Many thanks to @riverar who almost singlehandedly drove the research and development for the windows-app project.

Rust for the Windows App SDK

The windows-app crate lets you call any Windows App SDK (formerly known as Project Reunion) API using code generated from the metadata describing the API. It is powered by the windows crate.

Note: This is an experimental 🧪 crate and is not ready for production use.

Release channel coverage

The Windows App SDK is delivered via three release channels—experimental, preview, and stable. The windows-app crate currently targets APIs available in the preview and stable channels.

Getting started

It's very early days for the windows-app crate. To try it out, add the following to your Cargo.toml file:

[build-dependencies.windows-app]
git = "https://github.com/microsoft/windows-app-rs"
features = [
    "WindowsAppSdk_Foundation"
]

[dependencies.windows]
version = "0.37"

[dependencies.windows-app]
git = "https://github.com/microsoft/windows-app-rs"
features = [
    "WindowsAppSdk_Foundation",
    "Windows_System_Power"
]

Add a build script (build.rs) to your crate to deploy the Windows App SDK Bootstrapper with your app:

fn main() {
    ::windows_app::bootstrap::deploy::to_output_dir();
    
    // Temporary workaround for https://github.com/microsoft/WindowsAppSDK/issues/2634
    ::windows_app::build::embed_manifest(
        r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
           <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" />"#,
    )
}

Now make use of any Windows App SDK APIs as needed:

use ::windows_app::Microsoft::Windows::System::Power::*;
use ::windows_app::*;

fn main() -> ::windows::core::Result<()> {
    bootstrap::initialize()?;
    let charge = PowerManager::RemainingChargePercent()?;
    println!("Remaining charge: {charge}%");
    bootstrap::uninitialize()
}

Finally, install the Windows App Runtime on all target machines:

  1. Download the Windows App Runtime Redistributable package.
  2. Execute WindowsAppSDK-Installer-{arch}\WindowsAppRuntimeInstall.exe.

After you install the Windows App Runtime, it will be kept up-to-date by Microsoft via Windows Update.

windows-app-rs's People

Contributors

kennykerr avatar microsoft-github-operations[bot] avatar microsoftopensource avatar riverar avatar rylev avatar thadguidry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

windows-app-rs's Issues

Cross compilation from Linux?

I know this project is currently experimental, and this isn't a priority, but I figured I'd document in case someone else runs into this.

I'm trying to compile the example in the README from WSL using Linux cross compilation, which includes installing MinGW:

rustup target add x86_64-pc-windows-gnu
rustup toolchain install stable-x86_64-pc-windows-gnu
sudo apt-get install mingw-w64

This seems to almost work (because windows-rs supports cross compilation, it seems) but fails when the linker tries to find the app runtime:

  = note: /usr/bin/x86_64-w64-mingw32-ld: cannot find -lmicrosoft.windowsappruntime.bootstrap
          collect2: error: ld returned 1 exit status
error: could not compile `rust_windows` due to previous error

I'm really not sure how this could be solved, but it would be nice to have the workflow in WSL more clear. Thanks!

the second sample in your readme produces an error

Problem

Running this sample:

fn main() -> ::windows::core::Result<()> {
    println!("starting app");
    bootstrap::initialize()
        .and_then(|_| {
            println!(
                "Remaining charge: {}%",
                PowerManager::RemainingChargePercent()?
            );
            Ok(())
        })
        .and_then(|_| bootstrap::uninitialize())
}

produces this error:

Error: Error { code: 0x80070491, message: There was no match for the specified key in the index.
, win32_error: 1169 }

Steps to reproduce

Follow the readme.

Screenshots

Notes

  • Output from cargo version:
    cargo 1.57.0 (b2e52d7ca 2021-10-21)

  • Output from rustup show:
    Default host: x86_64-pc-windows-msvc
    rustup home: C:\Users\lovet.rustup
    stable-x86_64-pc-windows-msvc (default)
    rustc 1.57.0 (f1edd0429 2021-11-29)

  • Output from rustup --version:
    rustup 1.24.3 (ce5817a94 2021-05-31)

  • Output from cmd /c ver:
    Microsoft Windows [Version 10.0.22000.376]

windows_app_sdk `STATUS_STACK_BUFFER_OVERRUN`

Problem

`target\debug\skeleton.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
`target\debug\simple_window.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

Steps to reproduce

Build and launch on Win Server 2019 (with last updates)

Screenshots

изображение
изображение
изображение

Notes

  • Output from cargo version: 1.55.0-nightly (cebef2951 2021-07-22)
  • Output from rustup show:
Default host: x86_64-pc-windows-msvc
rustup home:  D:\Rust\rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-msvc
nightly-x86_64-pc-windows-msvc (default)

active toolchain
----------------

nightly-x86_64-pc-windows-msvc (default)
rustc 1.56.0-nightly (d9aa28767 2021-07-24)
  • Output from rustup --version: rustup 1.24.3 (ce5817a94 2021-05-31)
  • Output from cmd /c ver: Microsoft Windows [Version 10.0.17763.2061]

Xaml::Controls::MenuBar crashes

I'm trying to add a menu bar to the simple window example.

It crashes with exit code 0xc000027b.

To get access to Append() on Children, I added Microsoft::UI::Xaml::Controls::UIElementCollection to windows::build!.

let menu_bar = MenuBar::new()?;
let stack_panel = StackPanel::new()?;
stack_panel.Children()?.Append(&menu_bar)?;
stack_panel.Children()?.Append(&button)?;
window.SetContent(&stack_panel)?;

Where do the winmd files come from? (besides the generated one)

Hi! I have some questions regarding how the fns are generated, specifically for the XAML part of it.

I've been playing with the metadata generator project and now I'm able to generate the Microsoft.WindowsAppSdk.Generated.winmd file.
However, I wonder where do the rest of the winmd files in the .windows/winmd folder come from 🤔. Are those also generated?

I got into generating my own bindings due to the reduced API surface of the windows-rs crate (microsoft/windows-rs#1715) so I just set the min_xaml option to false. That helped and now I can call some more methods like SetContent but I can't seem to find others like Windows::new.

So, in fewer words:

  • Are the APIs published in this package under UI::Xaml substantially different from those in windows-rs (even with min_xaml disabled)?
  • How/Where can I get the mentioned winmd files?
  • Can we have some docs in how to use WinUI 3 from Rust with just windows-rs?
    • I know now we have this amazing crate (windows-app-rs) that simplifies the process, but I think documenting how it works will help people who are trying to experiment with it, use newer preview versions of the WindowsAppSDK or just tweaking it.

Message box not themed

The message box used to report that the runtime is missing would look a lot nicer if it were DPI and common controls aware.

Roadmap

Do you guys have a roadmap? 🙂

Windows App SDK itself and at least WinUI 3 in particular share their roadmaps, which is very helpful for planning the adoption.

This is the opposite of the windows-rs crate which doesn't have a roadmap and thus it's impossible to know when, for example, full WinRT component authoring support will arrive (if ever).

Please consider sharing your roadmap! This helps a lot and also is a great way to engage with the community 🙂

STATUS_ACCESS_VIOLATION

Problem

The reproducer here performs an access violation, which I don't think ought to be possible in safe rust.

I suspect this is really a bug in windows-rs, related to uninitialization of the field App.Window, but since it involves this crate I'm tentatively putting it here, feel free to move.

Steps to reproduce

  1. cargo run
>cargo run
   Compiling simple_window v0.0.0 (C:\Users\drew\CLionProjects\access-violation)
    Finished dev [unoptimized + debuginfo] target(s) in 2.41s
     Running `target\debug\simple_window.exe`
error: process didn't exit successfully: `target\debug\simple_window.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)

Screenshots

Notes

  • Output from cargo version:
    cargo 1.53.0 (4369396ce 2021-04-27)
  • Output from rustup show:
Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\drew\.rustup

stable-x86_64-pc-windows-msvc (default)
rustc 1.53.0 (53cb7b09b 2021-06-17)
  • Output from rustup --version:
rustup 1.24.3 (ce5817a94 2021-05-31)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.53.0 (53cb7b09b 2021-06-17)`
  • Output from cmd /c ver:
Microsoft Windows [Version 10.0.19043.1055]

Wondering why some controls work in xamlapp sample and some do not

(More of a question than an issue. If this repo had Discussions, this would belong there.)

So the xamlapp sample in this repo works nicely.

But if I replace the Button with, for example, a TextBox, it crashes.

Do we (by which I mean "you all") know why?

RatingControl and ColorPicker crash too.

CalendarDatePicker and DatePicker and Slider do not.

I know I'm probably in unsupported/uncharted territory here, but I'm just curious what's going on. Because, in the Swift projection I've been working on, I get exactly the same results: ericsink/SwiftWinRT#3

In fact, running each of these cases under a debugger, the Rust and Swift versions show the same debug messages before failing.

Any insights would be appreciated.

Error despite success

Problem

Functions return an error despite the function completed successfully

Steps to reproduce

  1. Combine Readme "Get started" procedure with the xamlapp code to create a xaml app
  2. Insert into L56 the following code
dbg!(window.Content());
dbg!(Window::Current());
  1. Compile & run the app
  2. See
[src\main.rs:56] window.Content() = Err(
    Error {
        code: 0x00000000,
        message: La operación se completó correctamente.
        ,
    },
)
[src\main.rs:57] Window::Current() = Err(
    Error {
        code: 0x00000000,
        message: La operación se completó correctamente.
        ,
    },
)

Why is an error returned instead of the desired value although there isn't an error?

Notes

  • Output from cargo version: cargo 1.64.0-nightly (a5e08c470 2022-06-23)
  • Output from rustup show:
Default host: x86_64-pc-windows-msvc
rustup home:  C:\Users\andre\.rustup

installed toolchains
--------------------

stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc
nightly-2021-03-20-x86_64-pc-windows-msvc
nightly-2021-03-22-x86_64-pc-windows-msvc
nightly-x86_64-pc-windows-msvc (default)

installed targets for active toolchain
--------------------------------------

wasm32-unknown-unknown
x86_64-pc-windows-msvc

active toolchain
----------------

nightly-x86_64-pc-windows-msvc (default)
rustc 1.64.0-nightly (2f3ddd9f5 2022-06-27)
  • Output from rustup --version:
rustup 1.24.3 (ce5817a94 2021-05-31)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.64.0-nightly (2f3ddd9f5 2022-06-27)
  • Output from cmd /c ver: Microsoft Windows [Versión 10.0.19044.1766]

Unidiomatic use of `Result::and_then` in README

Currently the code in the README:

fn main() -> ::windows::core::Result<()> {
    bootstrap::initialize()
        .and_then(|_| {
            println!(
                "Remaining charge: {}%",
                PowerManager::RemainingChargePercent()?
            );
            Ok(())
        })
        .and_then(|_| bootstrap::uninitialize())
}

I strongly suggest replacing it with the following:

fn main() -> ::windows::core::Result<()> {
    bootstrap::initialize()?;
    println!(
        "Remaining charge: {}%",
        PowerManager::RemainingChargePercent()?,
    );
    bootstrap::uninitialize()
}

I personally cannot think of any reason preventing the use of the ? operator, because it is already used in the original example. I would go even further to suggest the following:

fn main() -> ::windows::core::Result<()> {
    bootstrap::initialize()?;
    let power = PowerManager::RemainingChargePercent()?;
    println!("Remaining charge: {power}%");
    bootstrap::uninitialize()
}

Add an example

While the existence of windows-samples-rs is fantastic, I think it would be a mistake to not include any examples in this repo. Rust devs expect to find examples in an examples folder than can be run with cargo run --example. It would be great balance to have a least one basic example in this repo + a README in the examples folder explaining that more can be found in windows-samples-rs.

XAML markup support

First of all, thank you for patiently responding to all my questions 😅

I'm wondering, do you have any plans to support building WinUI 3 apps using XAML markup (so not in code-behind)?

I'd assume that would require a XAML compiler to kick off, but then it should be possible to load it using the XamlReader class ...then what?.. 😅

Do you have any plans or thoughts on how that might be supported? 🤔

Can't use `implement` macro for `Application`

Problem

I am trying to use the implement macro to implement a subclass of Microsoft::UI::Xaml::Application. It produces a build error

error[E0599]: no function or associated item named `new` found for struct `windows_app::Microsoft::UI::Xaml::IApplication_Vtbl` in the current scope
error[E0599]: no function or associated item named `matches` found for struct `windows_app::Microsoft::UI::Xaml::IApplication_Vtbl` in the current scope

WinUI 3 support

Hi,

It's great to see that Windows App SDK is now (going to be) supported on Rust! 🙂

I would like to ask, is this the right crate to use if I want to build WinUI 3 apps using Rust?

I realize that WinUI 3 support might only be coming in the future, but I would like to ask for a clarification of the crate ecosystem.

As a somewhat related question, how does this crate relate to windows-rs? Does it supersede the windows-rs crate, or builds upon it?

Thanks!

Error 0xc0000409 occurs in updated crate (Win App SDK 1.1) during bootstrap if .exe does not have a manifest

Problem

I updated the project to version 1.1 of the Windows App SDK (https://github.com/kaivol/windows-app-rs/tree/was-1.1).

Running the samples without an (embedded) manifest results in a crash during the bootstrap process:
process didn't exit successfully: `target\debug\sample_xamlapp.exe` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)

WinDbg gives the following output:

D:\a\_work\1\s\dev\WindowsAppRuntime_BootstrapDLL\MddBootstrap.cpp(776)\Microsoft.WindowsAppRuntime.Bootstrap.dll!00007FFB67F3B0D9: (caller: 00007FFB67F39C2F) LogHr(2) tid(15a0) 80040010 Objekt ist nicht in einem der Inplace Active States.
    Msg:[Bootstrap.Intitialize: Scanning packages for Major.Minor=1.1, Tag=, MinVersion=0.0.0.0] CallContext:[\Initialize] 
D:\a\_work\1\s\dev\WindowsAppRuntime_BootstrapDLL\MddBootstrap.cpp(885)\Microsoft.WindowsAppRuntime.Bootstrap.dll!00007FFB67F3BB5E: (caller: 00007FFB67F39C2F) LogHr(3) tid(15a0) 80040012 Der Vorgang kann nicht ausgeführt werden, da dem Objekt kein Speicher zugewiesen wurde.
    Msg:[Bootstrap.Intitialize: Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6_1000.516.2156.0_x64__8wekyb3d8bbwe is applicable (Major.Minor=1.1, Tag=, MinVersion=0.0.0.0)] CallContext:[\Initialize] 
D:\a\_work\1\s\dev\WindowsAppRuntime_BootstrapDLL\MddBootstrap.cpp(876)\Microsoft.WindowsAppRuntime.Bootstrap.dll!00007FFB67F3B9F8: (caller: 00007FFB67F39C2F) LogHr(4) tid(15a0) 80040011 Objekt kann nicht konvertiert werden.
    Msg:[Bootstrap.Intitialize: Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x8_1000.516.2156.0_x86__8wekyb3d8bbwe not applicable. Architecture doesn't match current architecture x64 (Major.Minor=1.1, Tag=, MinVersion=0.0.0.0)] CallContext:[\Initialize] 
D:\a\_work\1\s\dev\WindowsAppRuntime_BootstrapDLL\MddBootstrap.cpp(908)\Microsoft.WindowsAppRuntime.Bootstrap.dll!00007FFB67F3C486: (caller: 00007FFB67F39C2F) LogHr(5) tid(15a0) 80040013     Msg:[Bootstrap.Intitialize: Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6_1000.516.2156.0_x64__8wekyb3d8bbwe best matches the criteria (Major.Minor=1.1, Tag=, MinVersion=0.0.0.0) of 99 packages scanned] CallContext:[\Initialize] 
D:\a\_work\1\s\dev\UndockedRegFreeWinRT\urfw.cpp(416)\Microsoft.WindowsAppRuntime.dll!00007FFABA89C3A7: (caller: 00007FFABA8AF7C2) ReturnHr(1) tid(15a0) 8007000E Failed to allocate necessary memory.
D:\a\_work\1\s\dev\WindowsAppRuntime_DLL\dllmain.cpp(30)\Microsoft.WindowsAppRuntime.dll!00007FFABA8AF9A3: (caller: 00007FFABA8BB59B) FailFast(1) tid(15a0) 8007000E Failed to allocate necessary memory.
(4a68.15a0): Security check failure or stack buffer overrun - code c0000409 (!!! second chance !!!)
Subcode: 0x7 FAST_FAIL_FATAL_APP_EXIT 
KERNELBASE!RaiseFailFastException+0x152:

But it is not actually an 0x8007000E E_OUTOFMEMORY error, the actual error occurs in UndockedRegFreeWinRT/urfw.cpp:

342    hActCtx = CreateActCtxW(&acw);
343    RETURN_LAST_ERROR_IF(!hActCtx);
344    if (hActCtx == INVALID_HANDLE_VALUE)
345    {
346        SetLastError(ERROR_OUTOFMEMORY);
347        return HRESULT_FROM_WIN32(GetLastError());
348    }

Here CreateActCtxW returns INVALID_HANDLE_VALUE and sets the Last-Error to

LastErrorValue: (Win32) 0x714 (1812) - The specified image file did not contain a resource section.
LastStatusValue: (NTSTATUS) 0xc0000089 - Indicates the specified image file did not contain a resource section.

which then gets overwritten with ERROR_OUTOFMEMORY.

I couldn't find a remark in the Windows App SDK documentation that says a manifest is required, so I'm not sure if I did an error while updating to version 1.1 or if this is a new requirement in version 1.1.

Steps to reproduce

  1. Get my updated version of the crate
  2. Install version 1.1 of the Windows App SDK
  3. Run cargo run -p sample_xamlapp without the line windows_app_deploy::embed_manifest(); in the associated build.rs

Notes

  • Output from cargo version: cargo 1.61.0 (a028ae42f 2022-04-29)
Output from rustup show
installed toolchains
--------------------

stable-x86_64-pc-windows-msvc (default)
beta-x86_64-pc-windows-msvc
nightly-2022-03-18-x86_64-pc-windows-msvc
nightly-x86_64-pc-windows-msvc

installed targets for active toolchain
--------------------------------------

thumbv7em-none-eabi
thumbv7em-none-eabihf
thumbv7m-none-eabi
x86_64-pc-windows-msvc

active toolchain
----------------

stable-x86_64-pc-windows-msvc (default)
rustc 1.61.0 (fe5b13d68 2022-05-18)
  • Output from rustup --version: rustup 1.24.3 (ce5817a94 2021-05-31)
  • Output from cmd /c ver: Microsoft Windows [Version 10.0.22621.1]
Output from get-appxpackage *winappruntime*
Name              : Microsoft.WindowsAppRuntime.1.1
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.WindowsAppRuntime.1.1_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : Microsoft.WindowsAppRuntime.1.1
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X86
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x86__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x86__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.WindowsAppRuntime.1.1_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : MicrosoftCorporationII.WinAppRuntime.Main.1.1
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : MicrosoftCorporationII.WinAppRuntime.Main.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\MicrosoftCorporationII.WinAppRuntime.Main.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : MicrosoftCorporationII.WinAppRuntime.Main.1.1_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : MicrosoftCorporationII.WinAppRuntime.Singleton
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : MicrosoftCorporationII.WinAppRuntime.Singleton_1000.516.2156.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\MicrosoftCorporationII.WinAppRuntime.Singleton_1000.516.2156.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : MicrosoftCorporationII.WinAppRuntime.Singleton_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6_1000.516.2156.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6_1000.516.2156.0_x64__8
                    wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

Name              : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x8
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X86
ResourceId        :
Version           : 1000.516.2156.0
PackageFullName   : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x8_1000.516.2156.0_x86__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x8_1000.516.2156.0_x86__8
                    wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WinAppRuntime.DDLM.1000.516.2156.0-x8_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.1_1000.516.2156.0_x86__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

Name              : Microsoft.WindowsAppRuntime.1.0
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.WindowsAppRuntime.1.0_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : Microsoft.WindowsAppRuntime.1.0
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X86
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x86__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x86__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.WindowsAppRuntime.1.0_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : MicrosoftCorporationII.WindowsAppRuntime.Main.1.0
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : MicrosoftCorporationII.WindowsAppRuntime.Main.1.0_3.469.1654.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\MicrosoftCorporationII.WindowsAppRuntime.Main.1.0_3.469.1654.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : MicrosoftCorporationII.WindowsAppRuntime.Main.1.0_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : Microsoft.WindowsAppRuntime.Singleton
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : Microsoft.WindowsAppRuntime.Singleton_3.469.1654.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.Singleton_3.469.1654.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WindowsAppRuntime.Singleton_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Name              : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x6_3.469.1654.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x6_3.469.1654.0_x64__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x64__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

Name              : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x8
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X86
ResourceId        :
Version           : 3.469.1654.0
PackageFullName   : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x8_3.469.1654.0_x86__8wekyb3d8bbwe
InstallLocation   : C:\Program
                    Files\WindowsApps\Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x8_3.469.1654.0_x86__8wekyb3d8bbwe
IsFramework       : False
PackageFamilyName : Microsoft.WinAppRuntime.DDLM.3.469.1654.0-x8_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False
Dependencies      : {Microsoft.WindowsAppRuntime.1.0_3.469.1654.0_x86__8wekyb3d8bbwe}
IsPartiallyStaged : False
SignatureKind     : Developer
Status            : Ok

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.