* Reapply "PackageDeploymentManager: IsReadyOrNewerAvailable(), FrameworkUdk update, Implement not-implemented functions, Tests! (#4453)" (#4514)
This reverts commit 684fdf1797.
* Added #include sddl.h as WindowsAppRuntime.sln was fine for all users but the WindowsAppRuntimeInstaller.sln wasn't. Better to be self-fulfilling in case code changes again in the future to avoid unknown-symbol pains
This PR does multiple things
* Add Is*ReadyOrNewerAvailable*()
* Add EnsureReadyOptions.RegisterNewerIfAvailable=bool
* Add Is*Provisioned*()
* Fix progress updates when PackageSet.Items.Count>=2 (was (re)set to 0-1.0 for each item, not collectively for the whole operation)
* Update to recent FrameworkUdk
* Implement previously not-implemented functions (Remove, Repair, Reset)
* Expanded test coverage
* Update TAEF to 10.92.240405002
* DevCheck
* Added -InstallWindowsSDK option to install Windows (Platform) SDK if desired
* Fix DevUnlock check on a machine w/o DeveloperMode enabled (last registry access doing registry access the unsafe way error'ing if the value doesn't exist in the registry)
KNOWN ISSUES:
* Need updated Platform SDK to resolve known issues
* Register*Async() errors on 20H2/Vb3.
* Reset*Async() succeeds but ends w/o the package being registered
* RemovePackageByUriAsync() throws E_NOTIMPL
* RemovePackageSetAsync() throws E_NOTIMPL if PackageUri=ms-uup
* Provision*Async() not supported yet
* Deprovision*Async() not supported yet
https://task.ms/49555034https://task.ms/48914090https://task.ms/48964562
Additional changes
* Fixed progress reporting incorrect .progress percentage values
* Added StringToSid() and SidToString()
* Refactored common code into WaitForDeploymentOperation
* Added IsPackageRegistrationPending. Removed dead code. Added Black+Blacker test Main packages.
* Added PackageFamilyName() property to PackageIdentity
* Added IsPackageDeploymentFeatureSupported and initial support for Containment.
* Fixed RemovePackageOptions.FailIfNotFound.
* Improved logging
* Expanded tests.
* Fixed RemovePackageOptions.FailIfNotFound default (was true, supposed to be false). Mostly implemented RemovePackageSetAsync; URI handling is blocked awaiting FrameworkUdk update (imminent).
* Updated to latest FrameworkUdk
* Patched tests to deal with RemovePackage is awaiting updated Platform SDK
* Removed dead code. Updated some not-impl to impl :-)
* Repair!
* Added IsProvisioned
* Added Provisioning tests and support
* Added Deprovision tests (in progress).
* Optimized test code
* Upgraded TAEF to 10.92.240405002
* Tweak build logic to support Windows SDK 10.0.26100.0 but not fail if using 10.0.22621.0
* Tweaked SDK detection
* Fixed some URI handling
* DevCheck:
* Add docs re PackageSet properties
* Added workaround for tests not wired to work on 20H2/Vb
* Updated GettingStarted docs about using winget to install RS5 SDK. Added RS5 SDK check to DevCheck
* Fixed some global variable references
* Added pointer where to go to fix a missing Windows SDK
* Revert "Better logging support, replaces LOG_HR_MSG with DebugLog (#4271)"
This reverts commit 789ad81e67.
* Removed dead code
* Added coding guidelines for error handling and logging (doc current / expected practices)
* Change LOG_HR* misuse for non-failure (informational) purposes to proper TraceLoggingWrite()
* Optimized logging (TraceLogging fields instead of pre-formatting a string). Optimized bestFit tracking collapsing 1st match and better-match relying on DDLM version will always be >0.0.0.0 (kudos to Pratik for the optimization).
* Incorporated feedback
* Update bug-report.yaml for 1.4 experimental 1
* Updating roadmap for 1.5
* Fixing TBD
* Addressing feedback
* Adding note for ink control timeline in 1.5
* Updating note to include table view control
* Added links to Coding-Guidelines doc
* Fixed hyperlink
* Fixed some slightly stale information
* Updated CodingGuidelines re main-vs-develop
* Moved main-v-develop doc to Coding-Guidelines dir
Teach DevCheck to verify dependencies
To use:
* DevCheck -CheckDependencies (or -All or no parameters) to verify dependencies
* DevCheck -SyncDependencies to verify and potentially update dependencies (if necessary)
* DevCheck -CheckVisualStudio now also verifies all required components are installed per docs\Coding-Guidelines\VisualStudio2022.vsconfig
Also enabled StrictMode 3.0 for better error detection.
Sample runs:
[C:\source\repos\windowsappsdk]DevCheck.cmd -CheckVisualStudio
Checking developer environment...
Windows App SDK location...C:\source\repos\windowsappsdk
VisualStudio 2022...C:\Program Files\Microsoft Visual Studio\2022\Enterprise
...Scanning 69 components in C:\source\repos\windowsappsdk\docs\Coding-Guidelines\VisualStudio2022.vsconfig.....................................................................OK
Coding time!
and
[C:\source\repos\windowsappsdk]DevCheck.cmd
Checking developer environment...
Windows App SDK location...C:\source\repos\windowsappsdk
VisualStudio 2022...C:\Program Files\Microsoft Visual Studio\2022\Enterprise
...Scanning 69 components in C:\source\repos\windowsappsdk\docs\Coding-Guidelines\VisualStudio2022.vsconfig.....................................................................OK
Test certificate for C:\source\repos\windowsappsdk\.user\winappsdk.certificate.test.thumbprint...OK
Test certificate AF8A2139E3942FE1D3DA65009D68C2A97EB41739...OK
TAEF service...Running
Reading C:\source\repos\windowsappsdk\eng\Version.Details.xml...
14 dependencies detected
Reading C:\source\repos\windowsappsdk\eng\Version.Dependencies.props...
Verify C:\source\repos\windowsappsdk\eng\Version.Dependencies.props...OK
Scanning packages.config...
Scanned 23 packages.config
Scanned 40 *.vcxproj
Coding time!
TODO (in a future PR)
* Verify references in *proj use only packages in Version.*.xml
* Verify references in *proj use only package versions matching Version.*.xml
* Added Microsoft::WindowsAppRuntime::VersionInfo::RuntimeInformation as a (partial) runtime-equivalent WindowsAppSDK-VersionInfo.h to workaround the chicken-egg problem where we need to know the versioninfo now but it's nto defined until higher in the build tree (the Aggregator pipeline at the top)
* Replaced WindowsAppRuntime_SelfContainedTestInitialize with WindowsAppRuntime_VersionInfo_TestInitialize as we moved the functionality down a level
* Removed dead code
* Update docs for IsSelfContained
* Update test to match SelfContained/VersionInfo::TestInitialize change
* Add missing #include
* Add detection if WinAppSDK is deployed via MSIX or SelfContained
* Tweaked IsSelfContained to use C++ constant for the framework packagefamilyname
* Added placeholder for dev docs how to detect/use IsSelfContained. Details coming in next commit
* Fixed IsSelfContained to use GetCurrentPackageGraph (as intentded. Doh! on my part)
* Added tests for IsSelfContained (and ToUtf8/16! Fixed an infinite recursion stack overflow bug too :-)
* Added docs. Partially fixed SelfContained package family name (handles 2 out of 3 cases). 3rd case in follow up PR
* Changed IsSelfContained() from inline code to exported function
* Fixed tests
* Added TestShutdown. Updated the docs.
* Initial new issue update
* Update feature links to point to docs
* Point roadmap to productboard
* Update contributor-guide.md
* More roadmap link updates
* Update with final link
* Update contributing on main readme