The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
Перейти к файлу
Howard Kapustein 244c0b6a1b
[1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864)
* EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845)

EnsurePackage*Async() not handling options.RegisterNewerIfAvailable(true)

RegisterPackageByPackageFullNameAsync() and RegisterPackageByPackageFullNameAsync() take their target parameter as const hstring& resulting in the reference captured by their implementations' co_await and not the actual value. The caller deallocates the memory before Register... is done with it potentially leading to BadMojo(TM). Tests don't notice it as they're too simple to notice this use-after-free -- the memory may be deallocated but the memory's not overwritten (yet) in simple loads (like the tests). Larger scale (real world) use with more diverse memory patterns notice the problem (usually as a crash).

ApplicationDataTests_Elevated test cases were blocked state due to user context vs environmental state vs access control (ACLs whee!). Changed RunAs and associated test process setup to play nice together.

Fixed some PackageManagerTests that had incomplete state setup potentially causing false errors if a past previous test failed.

Fixed 400+ build warnings (mostly CS8305 due to [Experimental] attribute, almost all from OAuth generated C#/WinRT)

Removed redundant .props import (fixing a VS warning)

Fixed misleading log message

Removed wrong test cases

Added diagnostics to all Setup fixtures to hunt down Setup failures

Change IsReady tests to RunAs RestrictedUser

Fixed compiler warnings

Split ApplicationDataTests_Elevated to separate source file. Added diagnostics to ApplicationDataTests[_Elevated]. Moved TAEF display+compare support for C++/WinRT hstring into shared file (test/inc/WindowsAppRuntime.Test.TAEF.cppwinrt.h). Added Parameters to ApplicationData tests to (hopefully) troubleshoot failure.

Added whomi /all to build pipeline test output. Changed ApplicationData tests' default to IsolationLevel=Class (not TAEF's default =Module)

Changed PackageManager tests' default to IsolationLevel=Class (not TAEF's default =Module)

Factored tests into separate runs to aid troubleshooting failures

Added suppression of CS8305 (Feature is experimental... duh) as not helpful and negatively helpful (400+ warnings that are, for us, features).

https://task.ms/54835036
https://task.ms/54858998
https://task.ms/54884960

* Fixed (sync'd) dependencies

* Added missing dependency to Version.Details.xml and ran DevCheck -SyncDepednencies

* Removed unused files accidentally brought in via the cherrypick from main

* Removed some whitespace to see if a file change will fix a git problem
2024-11-08 20:21:25 -08:00
.config Update tsaoptions.json (#4464) 2024-05-31 22:34:32 +00:00
.github Update bug-report.yaml (#4549) 2024-07-09 16:10:37 -07:00
assets Update the icons/logos (#1077) 2021-07-28 10:05:49 -07:00
build [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
dev [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
docs Package Management and IsReadyOrNewerAvailable() again (#4517) 2024-06-27 09:41:01 +00:00
eng [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
installer [1.6] Update Taef, WIL, AzureKeyVault task versions. Sync FrameworkUdk versions. (#4656) 2024-08-19 13:03:34 -04:00
localpackages User/eho makai/reunion framework package (#163) 2020-09-04 18:00:35 -07:00
specs Bug 54517063: [WinAppSDK] RegisterPackageSetAsync() requires URI when it should be optional to register by PackageFamilyName (#4813) (#4815) 2024-10-18 12:53:03 -07:00
test [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
tools [1.6] Update Taef, WIL, AzureKeyVault task versions. Sync FrameworkUdk versions. (#4656) 2024-08-19 13:03:34 -04:00
.editorconfig Add latest .editorconfig from OS.2020 (#3363) 2023-01-25 12:16:47 -08:00
.gitattributes Add initial solution and code examples (#102) 2020-07-06 13:27:12 -07:00
.gitignore Add initial Protobuf support (#3448) 2023-02-17 15:38:25 -08:00
ApiScan.Cpp.props Fix MRT Core binary vulcanization for API scanning. (#1332) 2021-08-30 21:44:34 +00:00
BuildAll.cmd Various BuildTransportPackage.ps1 Refactors and Fixes (#3221) 2022-12-06 15:01:27 -08:00
BuildAll.ps1 b#48614111: Add "break on error" setting to the top of powershell scripts in WASDK (#4529) 2024-07-02 19:54:46 -07:00
DevCheck.cmd Change to using the centrally shared copy of DevCheck (from eng\common) (#3672) 2023-06-21 13:01:58 -04:00
Directory.Build.props [Cherry-pick][Windows App SDK 1.6] Fix Source Link information so it points to Github rather than internal AzDO mirror (#4670) 2024-08-21 17:40:10 -04:00
Directory.Packages.props Update System.Text.Json to 8.0.5 (#4793) (#4794) 2024-10-10 11:22:02 -07:00
HybridCRT.props Add initial Protobuf support (#3448) 2023-02-17 15:38:25 -08:00
LICENSE resolving license confusion (#3564) 2023-04-17 21:09:21 +00:00
MakeMsix.targets Update pipelines to use BuildTransportPackage.ps1 (#3062) 2022-10-20 12:31:25 -07:00
NuGet.config [main] Update dependencies from microsoft/LiftedIXP/DCPP (#3980) 2024-01-19 10:02:27 -05:00
README.md Removing references to old product board site and redirecting to roadmap (#4298) 2024-03-28 21:23:07 -07:00
SECURITY.md [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
SdkVersion.props Update NuGet template wizard after recent Microsoft.Windows.SDK.BuildTools addition to WAS. (#1269) 2021-09-01 17:09:38 -07:00
TestAll.cmd Support TAEF testing in foundation pipeline (#3367) 2023-02-07 17:29:16 -08:00
TestAll.ps1 b#48614111: Add "break on error" setting to the top of powershell scripts in WASDK (#4529) 2024-07-02 19:54:46 -07:00
WasdkStrongNameSign.snk Snapshot 1: Enable strong name signing (#3875) 2023-10-02 17:04:53 -07:00
WindowsAppRuntime.sln [1.6 servicing] EnsurePackage*Async() handling options.RegisterNewerIfAvailable(true). RegisterPackageByPackageFull/FamilyNameAsync crash. Test + Warning fixes (#4845) (#4864) 2024-11-08 20:21:25 -08:00
WindowsAppSDK.Build.Cpp.props PackageManagement Microsoft...StubPackageOptions + Projection + /we4715 (#4111) 2024-01-23 22:46:51 -08:00
environment.props Rename ProjectReunion -> WindowsAppSDK (#1041) 2021-07-15 22:30:19 -07:00
global.json update versions for 1.6 stable (#4648) 2024-08-16 07:21:31 -04:00
version.props Rename ProjectReunion -> WindowsAppSDK (#1041) 2021-07-15 22:30:19 -07:00

README.md

Windows App SDK - Calling all Windows developers!

Previously known as Project Reunion.

Delight users with modern UI Access new platform features Backwards compatible
Modern navigation
Powerful WinUI 3 UI
Platform logo
Localization + power status + more
Down-level logo
Down to Windows 10 1809

...and more, without having to rewrite your app!

  • Use your current installer (no requirement to use MSIX, but there are reliability/security benefits to using MSIX!)
  • Additive platform APIs (only add what you need, leave the rest of your app as-is)
  • Works with Win32, WPF, WinForms, and more apps

Plus, create beautiful, modern apps for Windows 11 that are backwards compatible to Windows 10 October 2018 Update (build 17763 / version 1809)!

Version support

The Windows App SDK aims to work on supported versions of Windows. Right now we support down to build 17763 (version 1809/October 2018 Update) of Windows 10. Wherever possible, we'll use techniques like 'polyfills' and custom implementations to do the heavy lifting for you and make sure your app works across Windows versions and devices. In the future, there may be a couple APIs that are dependent on new OS features (like new Action Center functionality), however we will do our best to ensure this is the exception and not the norm, and provide reasonable fallbacks when possible.

Contributing

Bugs

We want to hear from you!

File a new issue! Tell us what problem you're trying to solve, how you've tried to solve it so far, and what would be the ideal solution for your app. Bonus points if there's a gist or existing repo we can look at with you.

  1. Ask a question
    Also, have a look at our frequently asked questions page which we will update periodically.

  2. Start a discussion
    Discussions can be about any topics or ideas related to the Windows App SDK. For example, you might start a Discussion issue to see if others are interested in a cool new idea you've been thinking about that isn't quite ready to be filed as a more formal Feature Proposal.

  3. Code contributions
    More information regarding contributing and developer guidelines here.

Data collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.

Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.

Privacy information can be found at https://privacy.microsoft.com/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.