Skip to content

Enable APIscan-friendly build options#2050

Merged
DrusTheAxe merged 1 commit intomainfrom
user/drustheaxe/apiscan
Feb 2, 2022
Merged

Enable APIscan-friendly build options#2050
DrusTheAxe merged 1 commit intomainfrom
user/drustheaxe/apiscan

Conversation

@DrusTheAxe
Copy link
Copy Markdown
Member

@DrusTheAxe DrusTheAxe commented Feb 2, 2022

Enable build options so Release binaries are APIscan-friendly.

https://task.ms/37934927

All product projects had the right settings except /DEBUGTYPE:FIXUP.

ApiScan.Cpp.props sets /Zi /Gf /Gy and /DEBUG /OPT:REF /OPT:ICF /INCREMENTAL:NO /DEBUGTYPE:CV,FIXUP (albeit via english-y named XML Elements) but only a couple of MRT projects imported that. This change moves the import to Directory.Build.props so all projects get the necessary options for Release builds.

Needed compiler options => /Zi /Gf /Gy

  • /Zi - Debug Information Format = Program Database (PDB)
  • /Gf - Enable string pooling = Yes. Also enabled if /O1 (optimize for size) or /O2 (optimize for speed) are set
  • /Gy - Enable Function-Level Linking = Yes

Needed linker options => /DEBUG /DEBUGTYPE:CV,FIXUP /OPT:REF /OPT:ICF /INCREMENTAL:NO

  • /DEBUG - Generate Debug Info
  • /OPT:REF - References = Yes
  • /OPT:ICF - Enable COMDAT Folding = Yes
  • /INCREMENTAL:NO - Enable Incremental Linking = No

/DEBUG:FULL also works. Generates more info than Vulcan requires but not a problem.

/profile linker option also works . Though I've yet to see a project set that (ever, not just in WinAppSDK).

If /DEBUGTYPE is set Vulcan needs CV + FIXUP. If /DEBUG is specified and /DEBUGTYPE isn't then /DEBUGTYPE defaults to CV.

I reviewed Release settings for..

  • RestartAgent
  • DynamicDependencyLifetimeManagerShadow
  • DynamicDependency.DataStore
  • DynamicDependency.DataStore.ProxyStub
  • DynamicDependencyLifetimeManager
  • DynamicDependencyLifetimeManager.ProxyStub
  • PushNotiticationsLongRunningTask
  • PushNotiticationsLongRunningTask.ProxyStub
  • PushNotiticationsLongRunningTask.StartupTask
  • WindowsAppRuntime_DLL
  • WindowsAppRuntime_Bootstrap
  • dev/mrtcore/MRM
  • dev/mrtcore/mrmex
  • dev/mrtcore/mrmmin
  • installer/WindowsAppRuntimeInstall

(i.e. all the product projects. No test projects)

They all use the same key settings: /Zi, /Gy, /DEBUG:FULL, /OPT:ICF, /OPT:REF, /INCREMENTAL:NO.

/GF is good, though not consistent. MRM sets /Gf (only one to explicitly do so). No other explicitly sets /Gf but do set /O2 which implies /Gf.

No project set /DEBUGTYPE but since they set /DEBUG they get the default of /DEBUGTYPE:CV. (These are typical settings for Release configurations in VS templates).

Only option missing: /DEBUGTYPE:FIXUP.

VS project settings has no GUI property to set /DEBUGTYPE directly. You can only point/click set it indirectly via the Generate Debug Info option and that combobox of choices only offers No, /DEBUG, /DEBUG:FASTLINK, /DEBUG:FULL and inherit from parent. You'd have to enable this via the raw Command Line option, or via msbuild props/targets. Like, say, ApiScan.Cpp.props... ;-)

@DrusTheAxe DrusTheAxe added the area-Infrastructure Build, test, source layout, package construction label Feb 2, 2022
@DrusTheAxe DrusTheAxe added this to the 1.1 milestone Feb 2, 2022
@DrusTheAxe DrusTheAxe self-assigned this Feb 2, 2022
@ghost ghost added the needs-triage label Feb 2, 2022
@DrusTheAxe
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@riverar
Copy link
Copy Markdown
Contributor

riverar commented Feb 2, 2022

Raising another concern that APIScan options will probably impact inner loop/external compilation/test runs. These audiences don't care about APIScan and therefore may not need the additional debug info, could benefit from incremental linking, etc.

@BenJKuhn
Copy link
Copy Markdown
Member

BenJKuhn commented Feb 2, 2022

Raising another concern that APIScan options will probably impact inner loop/external compilation/test runs. These audiences don't care about APIScan and therefore may not need the additional debug info, could benefit from incremental linking, etc.

We should be able to separate out developer workstation builds from our official / nightly builds in this regard, esp. enabling incremental builds for dev inner loop. That's additional development work that we'll need to do, though it should be pretty straightforward and small. @EricJohnson327 has been working on our build scripts and automation. Eric, is this something you can slipstream into the work that you're doing, or should we track this as a separate item?

@riverar
Copy link
Copy Markdown
Contributor

riverar commented Feb 2, 2022

@BenJKuhn Perfect, thanks!

@DrusTheAxe DrusTheAxe merged commit 0f6218b into main Feb 2, 2022
@DrusTheAxe DrusTheAxe deleted the user/drustheaxe/apiscan branch February 2, 2022 19:11
@DrusTheAxe
Copy link
Copy Markdown
Member Author

We should be able to separate out developer workstation builds from our official / nightly builds

De facto practice we largely do today. This only affects Release builds (and only minutely). WinAppSDK developers routinely work on Debug builds for multiple reasons (including debugging optimized code is painful and rarely necessary).

@alexlamtest
Copy link
Copy Markdown
Contributor

LGTM.

@EricJohnson327
Copy link
Copy Markdown
Contributor

Raising another concern that APIScan options will probably impact inner loop/external compilation/test runs. These audiences don't care about APIScan and therefore may not need the additional debug info, could benefit from incremental linking, etc.

We should be able to separate out developer workstation builds from our official / nightly builds in this regard, esp. enabling incremental builds for dev inner loop. That's additional development work that we'll need to do, though it should be pretty straightforward and small. @EricJohnson327 has been working on our build scripts and automation. Eric, is this something you can slipstream into the work that you're doing, or should we track this as a separate item?

I believe we could pass the PipelineBuild flag from the build scripts to the msbuild call for these projects and add a conditional to the Directory.Build.props. But I wouldn't block on this since it only affects release builds. I'll add it to my list of TODOs.

loneursid added a commit that referenced this pull request Feb 3, 2022
* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* Solution updated by VS

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
loneursid added a commit that referenced this pull request Feb 11, 2022
* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* bad merge

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
loneursid added a commit that referenced this pull request Feb 18, 2022
* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT


 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
pmpurifoy added a commit that referenced this pull request Feb 18, 2022
* Add constness to parameters (#2124)

* Refactor AppNotificationManager and add firstNotificationReceived (#2119)

* Refactor AppNotificationManager and add firstNotificationReceived

* Address nits

* Fix handler exception logic

* FI main into feature branch WNP_ToastNotifications_L1 (#2123)

* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT


 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Adding CS Projections to Toast Notifications (#2116)

* Adding C# projections

* arm configs aren't supposed to be set

* missed a reference to push notifications

* Need to publish the DLLs

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Retrieve Push/Toast Activator from registry (#2094)

* Able to get both Push/Toast Activator from registry

* Address comments and also remove unneccessary unittests as per new design

* Implement pure Register function for AppNotifications

Optimize unittests

* Infer DisplayName and Icon

* Address Comments

* Nit: replace XML toast creation with hstring in demo app

* Restore PushNotificationManager

* Restore com guid in PushNotificationdemoapp

* Update PushNotificationUtility.h

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Update main.cpp

* Mostly bug fixes on DisplayName/Icon logic

* Fixing bad merge

* Fixed bad throw check

Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com>
Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>

* Remove PushNotificationActivationInfo

Co-authored-by: Pavan Hullumane <pavanh@microsoft.com>
Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com>
Co-authored-by: eric langlois <email@ericlanglois.com>
Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>
pmpurifoy added a commit that referenced this pull request Feb 18, 2022
* Add constness to parameters (#2124)

* Refactor AppNotificationManager and add firstNotificationReceived (#2119)

* Refactor AppNotificationManager and add firstNotificationReceived

* Address nits

* Fix handler exception logic

* FI main into feature branch WNP_ToastNotifications_L1 (#2123)

* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT

 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Adding CS Projections to Toast Notifications (#2116)

* Adding C# projections

* arm configs aren't supposed to be set

* missed a reference to push notifications

* Need to publish the DLLs

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Retrieve Push/Toast Activator from registry (#2094)

* Able to get both Push/Toast Activator from registry

* Address comments and also remove unneccessary unittests as per new design

* Implement pure Register function for AppNotifications

Optimize unittests

* Infer DisplayName and Icon

* Address Comments

* Nit: replace XML toast creation with hstring in demo app

* Restore PushNotificationManager

* Restore com guid in PushNotificationdemoapp

* Update PushNotificationUtility.h

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Update main.cpp

* Mostly bug fixes on DisplayName/Icon logic

* Fixing bad merge

* Fixed bad throw check

Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com>
Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>

* Remove PushNotificationActivationInfo

Co-authored-by: Pavan Hullumane <pavanh@microsoft.com>
Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com>
Co-authored-by: eric langlois <email@ericlanglois.com>
Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>
loneursid added a commit that referenced this pull request Feb 24, 2022
* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT


 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

* Update AppLifecycle StateNotifications.md (#2103)

Add EffectivePowerMode2

* Update to FrameworkUDK 1.1.0-CI-22541.1002.220217-1401.0 (#2141)

* Update MSIX package names' spec to match actual 1.0 behavior (missed updating spec when we updated code for 1.0-stable) (#2104)

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: andreww-msft <30507740+andreww-msft@users.noreply.github.com>
pmpurifoy added a commit that referenced this pull request Feb 28, 2022
* Move pushHandlers to PushNotificationManager

* Add exception if no com register

* Update PushNotificationManager.cpp

* Move statics to member variables

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Only allow event handlers before register

* Update PushNotificationManager.cpp

* Remove PushNotificationActivationInfo (#2132)

* Add constness to parameters (#2124)

* Refactor AppNotificationManager and add firstNotificationReceived (#2119)

* Refactor AppNotificationManager and add firstNotificationReceived

* Address nits

* Fix handler exception logic

* FI main into feature branch WNP_ToastNotifications_L1 (#2123)

* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT

 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Adding CS Projections to Toast Notifications (#2116)

* Adding C# projections

* arm configs aren't supposed to be set

* missed a reference to push notifications

* Need to publish the DLLs

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Retrieve Push/Toast Activator from registry (#2094)

* Able to get both Push/Toast Activator from registry

* Address comments and also remove unneccessary unittests as per new design

* Implement pure Register function for AppNotifications

Optimize unittests

* Infer DisplayName and Icon

* Address Comments

* Nit: replace XML toast creation with hstring in demo app

* Restore PushNotificationManager

* Restore com guid in PushNotificationdemoapp

* Update PushNotificationUtility.h

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Update main.cpp

* Mostly bug fixes on DisplayName/Icon logic

* Fixing bad merge

* Fixed bad throw check

Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com>
Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>

* Remove PushNotificationActivationInfo

Co-authored-by: Pavan Hullumane <pavanh@microsoft.com>
Co-authored-by: Paul Purifoy <33183370+pmpurifoy@users.noreply.github.com>
Co-authored-by: eric langlois <email@ericlanglois.com>
Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>

* Update PushNotificationManager.cpp

* Add unit tests

* Remove sink registration from PushReceived

* 1.Address minor comments
2.Use exclusive locks to lock member variables

* Remove foregroundsink for unpackaged applications in Unregister

* Refactor Register flow

* Lock RegisterSinkHelper

* More changes to Register

* Update PushNotificationManager.cpp

* Rename m_protocolRegistration ->m_lrpRegistration

* Implement Unregister APIs for PushNotificationManager (#2152)

* Change error codes and move registering to member

* Addressing comments

* Add unittests (#2177)

* Rename Unittests

* Remove helpers (#2180)

* Remove helpers

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Update PushNotificationManager.cpp

* Revamp Unregister/UnregisterAll in PushNotificationManager (#2179)

* Revamp Unregister/UnregisterAll in PushNotificationManager

* Address minor comments

* Rename m_singletonBackgroundRegistration to m_singletonLongRunningSinkRegistration

* Remove Multiple Channel request unittest

* Resolving more comments

Co-authored-by: Sharath Manchala <10109130+sharath2727@users.noreply.github.com>
Co-authored-by: Pavan Hullumane <pavanh@microsoft.com>
Co-authored-by: eric langlois <email@ericlanglois.com>
Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: Daniel Ayala <14967941+danielayala94@users.noreply.github.com>
Co-authored-by: Venkata Sharath Chandra Manchala <vemancha@microsoft.com>
loneursid added a commit that referenced this pull request Mar 1, 2022
* Enable SBOM generation for WindowsAppSDK (#1979)

* TDBuild - updating localized resource files.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.14001 (#1985)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220110.0-CI -> To Version 1.0.0-20220114.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* TDBuild - updating localized resource files.

* DDLM package names are Microsoft.WinAppRuntime.DDLM.<minor><patch>.<msixminor>.<msixbuild>.<msixrevision>[-shortversiontag]. But we only want to match down to <minor>. The code+spec was wrong to look for <minor>.* needs to be <minor>* (#1995)

* TDBuild - updating localized resource files.

* Add new font selection APIs to DWrite API spec (#1967)

* Add new font selection APIs to DWriteCore API spec.
* Add descriptions of font family models and font selection algorithms.

* AppLifecycle Restart API (#1134)

* Initial restart API branch

* Formatting to code blocks

* Updates to heading

* Removed preamble

* Updates to overview

* Removing resources content

* Updating restart spec with latest changes

* Fixed summary

* Updates to API details, mechanism and sample

* run markdown prettifier

* Updating mechanism

* Updating formatting for consistency

* Updates to return value description

* Updates to spec after latest review

* Prettified to match md guidelines, fixed nits

Co-authored-by: Hamza Usmani <mousma@microsoft.com>

* Initial RequestRestartNow API (#1882)

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* Initial API signature

* snap for driving home

* RestartAgent basic build infra

* builds now

* Updates to the calling API and the restartagent.

* switch to using common implementation of IsPackagedProcess()/HasIdentity()

* update

* New test passes with API.

* updated comment

* Error handling changes and packaged code paths.

* Removed unused tests, and added new test.

* cleanup

* transport packaging stuff

* typo

* Enable control flow guard for Release only.

* PR feedback

* Add ARM64

* Update to support packaged scenarios.  This needs to be further scoped to only Desktop Bridge apps.

* Detect UWP and redirect.

* Reduce access usage.

* Final API Name updates

* Add MRTCore interface name and id (#1989)

* Correct CsWinRTWindowsMetadata

* WindowsSdkPackageVersion

* Suffix

* suffix only

* 22

* Update

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2201.25001 (#2018)

Microsoft.WinAppSDK.EngCommon
 From Version 1.0.0-20220114.0-CI -> To Version 1.1.0-20220125.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Generate cert (#1986)

* Update DevCheck to generate MSTest.pfx/.cer

* Refactor temp handling. Add .user dir

* Change cert handling to use .user\* and direct certificate handler via Powershell's PKI module. Buh-bye all references to MSTest.* and certutil

* Add -Remove-DevTestCert and -Remove-DevTestPfx

* Change all temp\MSTest.pfx to .user\winappsdk.certificate.test.pfx

* Added -CertPasswordFile, -CertPasswordUser, -RemoveAll. Save password as plaintext to .pwd file for later use

* Update makemsix.cmd to pass along the .pwd content needed to use the (now password protected) .pfx

* Update MSTest references

* Start of changing NMAKEfiles to MSBuild

* Add new file

* MakeMsix.targets works! Rewrote DDLM.msix to work it out, when running a specific project (e.g. 'msbuild /bl /p:Configuration=Debug,Platform=x64 /t:Build test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj'). Now to verify it works when building the solution, moving MakeMsix.targets out to root\build and propogating this to the other makemsix projects

* 'msbuild foo.vcxproj' works but 'msbuild bar.sln' fails due to 'C:\source\repos\windowsappsdk\test\DynamicDependency\data\DynamicDependencyLifetimeManager.Msix\DynamicDependencyLifetimeManager.Msix.vcxproj error MSB4057: The target GetProjectInfoForReference does not exist in the project. [C:\source\repos\windowsappsdk\' Seems GetPRojectInfoForReference is referenced by 'C:\ProgramFiles (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets' and Microsoft.Makefile.targets, we don't fit either but they're required to resolve '<ProjectReference...'? Is it possible to move the ProjectReference dependency to the .sln? Or make this work without trying to make a full blown C++ or NMake project? Time to ping some VS/MSBuild experts...

* Tweaked the vcxproj to successfully create .msix via MakeMSIX!

* Moved MakeMSIX.targets to the root (with other build files)

* It works! Got the test projects building with the .pfx and .pwd

* Rewiring test projects to use MakeMsix.targets instead of NMake

* Yet more MakeMsix fixup

* Fixed the package name

* Added dummy Clean command (for now)

* Fixed Deployment's test package where source files get put to different subdir+filename inside the msix

* Fix DevCheck Start-Service to gracefully degrade if not running as admin

* DeploymentTests were missing a build order dependency on BootstrapDLL project

* Updated DevCheck generated cert to have 12-month lifespan (like current one)

* Move Framework.* projects from makemsix.cmd to MakeMSIX.targets

* Delete makemsix.cmd (obsolete)

* Updated test projects to use static manifests instead of generated from a template (unnecessary complexity)

* Deleted obsolete MakeAppxManifestFromTemplate.*

* Removed obsolete manifest/template handling. Removed printfery debugging

* Minor syntax cleanup. Fixed appxmanifest overly aggressive copy/paste human error <sheepish grin>. Fixed publish-header delete-custom-build-step human error

* Fixup Math framework header publishing (due to bad merge due to the age of this change and other work in other branches that hit main. Grrr)

* Deleted obsolete files

* Replaced SolutionDir with RepoRoot

* Rewrote installer's testpackage creation project to use MakeMSIX

* Fixed naming inconsistencies

* Addressed some issues. More to come

* Fixed Get-UserPath emitting New-Item result to the output stream thus when creating the .user directory return $user returned System.Object[] with 2 objects in the stream (filename twice). Well, that was fun

* Fix bad merge

* Added Clean support to MakeMSIX. Cleanup up some internals including dependencies. MakeMsixOutputFilename is no longer optional and inferred; it must be defined by a project before import'ing makemsix.targets

* Optimized load-test-cert-password to a global done once instead of per import rof makemsix.targets

* Updated projects to use the common RepoTestCertificate*

* Removed obsolete and redundant <Error> check

* Added file-existence check before readng file. Added error check at start of project to flag missing-devcheck-artifacts early rather than late

* Test WTH is going on

* Remove debugging printfery. NOTE: Separate Jobs in a pipeline (will? may?) run in parallel on different machines. Until build-mrt.yml is merged into WindowsAppSDK-BuildProject-Steps.yml any common setup (or cleanup) needs to be done in both. Also, it means MRTCore *cannot* use any APIs in WindowsAppRuntime.sln because they're technically peers

* Add DevCheck support to RunTestsInHelix job

* Merge/Port 1.0 license support into main/1.1 (#2012)

* Update installer to support both publishing IDs used in App SDK. (#1759)

* draft changes

* fixing typo

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Added MSIX license support (#1783)

* Update installer to support installing licenses. Structure in place, need to coordinate with build pipeline to implement InstallLicenses (instead of printf)

* Simplified help

* Added missing Copyright. Add valid license for inner-loop testing. Added --dry-run and other command line parameters (to expedite testing as well as product benefit). Wired up install flow. Next is testing the actual get-license-from-stream-and-install

* It works! Verified with stub NOP implementation here for dev inner-loop and full pipeline bits. Improved error reporting.

* Add license support to Deployment API and a new InstallLicenses API (#1790)

* Updated DeploymentManager to install license files if necessary

* Add stubs for the InstallLicenseFile() methods

* Change installer to install licenses BEFORE packages, for higher reliability

* Copy the license header to the source tree to use whehn building via the pipeline]

* Add Licensing API and export from Bootstrap'r

* Added some pseudocode in MsixInstallLicenses(). Real implementation coming RSN

* yml changes to pickup licensing package when needed.

* moving restore to the top of the pipeline.

* moving back, wrong stage

* Fixed license filename

* add nuget authenticate call

* differnt connection

* adding nuget config for build

* avoid using licensing support in github / PR builds, which don't have access to the resources

* update script to capture package version / name.

* one missed check

* Incorported feedback

* udpdating nuget.config name to avoid conflicts.

Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Incorporated feedback

Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>

* Update to FrameworkUDK 1.1.0-CI-22541.1000.220124-0934.0 (#2019)

* Exclude CsWinRT.Dependency (#2021)

* Bad merge fix missed copying main_license.xml to the testpackages directory (#2025)

* Feature for sharing security descriptors (take 2) (#2005)

* Initial

* Working tests

* WinRT implementation

* Delay load both DLLS and perform full bootstrap setup. It works!

* PR feedback

* Wrap long lines

* Merge in test package changes

* Reworded a password prompt for clarity (#2035)

* Remove 19h1 and add 21H1 to Helix test queue. (#2038)

* Windows SDK version should match that of other projects (#2043)

Co-authored-by: Eric Langlois <erlangl@microsoft.com>

* Moving Intellisense files to single location (#2028)

* Moving Intellisense files to foundation repo

* Moving Intellisense files into one location

* Moving Intellisense files to internal repo

Co-authored-by: Eric Johnson <ejohn@microsoft.com>

* Reworded a password prompt for clarity (#2045)

* Enable APIscan-friendly build options (#2050)

* DynamicDependencies: support elevation (#2066)

* Changed DynamicDependencies' mechanism to get ApplicationData for non-System definitions. Only use the PackagedCOM object when running in an AppContainer (where hopping to another process is necessary). Elevated (and MediumIL) can directly use ApplicationDataManager (a necessity for Elevation, a nicety for MediumIL)

* New file

* Remove elevated blockers. Fixup to work for elevation. Update elevation test to verify success (as expected) instead of failure (as previously expected)

* Fixup DDLMShadow logging to not fail on timeout (WINDOWSAPPSDK_DDLM_SHUTDOWN and ..._CALLER_TERMINATED).  Previously would crash because WIL faults if LOG_*() called with SUCCEEDED(hr), but this was the last thing in the process before exit so we didn't notice. Should change to alternative logging (Telemetry?) but need to check options before deciding which way to jump. Update will be coming

* Add tests for Elevation

* Add a missing comment

* ignore failures button'

* Revert "ignore failures button'"

This reverts commit ef2c8ad.

* Add button to allow publishing even if there are test failures (#2070)

* Update to FrameworkUDK 1.1.0-CI-22541.1001.220207-1139.1 (#2077)

* Move CSWinRT to Toolset Dependencies in Version.Details.xml (#2084)

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.10001 (#2092)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220125.0-CI -> To Version 1.1.0-20220210.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Adding a non-async PowerNotificiations::EffectivePowerMode method (#2076)

* Added EffectivePowerMode2

* Added EffectivePowerMode2

Co-authored-by: Huzaifa Danish <modanish@microsoft.com>

* Update dependencies from https://github.com/microsoft/CsWinRT build 1.5.0.220207.5 (#2072)

[main] Update dependencies from Microsoft/CsWinRT


 - Merge branch 'main' into darc-main-309a8238-dc1b-428e-92c2-4f38e8ba749a

* Update AppLifecycle StateNotifications.md (#2103)

Add EffectivePowerMode2

* Update to FrameworkUDK 1.1.0-CI-22541.1002.220217-1401.0 (#2141)

* Update MSIX package names' spec to match actual 1.0 behavior (missed updating spec when we updated code for 1.0-stable) (#2104)

* Publish all BuildOutput as a pipeline artifact, to enable running additional tests in the future. (#2149)

* Publish all of the build output as an artifact.

* Use Pipeline artifacts instead.

* Attempt downloading the pipeline BuildOutput artifact in the Helix tests.

* Apparently we can't have multiple pipeline artifacts.

* Fix

* Fix filtering.

* They are reversed.

* Folders inside folders.

* Sigh.

* Comments

* Remove old method.

* Remove debug output.

* Update dependencies from https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal build Maestro-UpdateEngCommon_2202.25001 (#2181)

Microsoft.WinAppSDK.EngCommon
 From Version 1.1.0-20220210.0-CI -> To Version 1.1.0-20220225.0-CI

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* IsSelfContained() (#2135)

* 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.

Co-authored-by: Kyaw Thant <48363984+kythant@users.noreply.github.com>
Co-authored-by: TDBuild <DoNotEmailThis@dev.null.microsoft.com>
Co-authored-by: reunion-maestro[bot] <81196566+reunion-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Howard Kapustein <howardk@microsoft.com>
Co-authored-by: Niklas Borson <niklasb@microsoft.com>
Co-authored-by: Hamza Usmani <hamza-usmani@users.noreply.github.com>
Co-authored-by: Hamza Usmani <mousma@microsoft.com>
Co-authored-by: Scott Darnell <20483794+aeloros@users.noreply.github.com>
Co-authored-by: Hui Chen <huichen@microsoft.com>
Co-authored-by: Joshua Larkin <70237359+j0shuams@users.noreply.github.com>
Co-authored-by: Ben Kuhn <bjk4929@yahoo.com>
Co-authored-by: Ben Kuhn <benkuhn@ntdev.microsoft.com>
Co-authored-by: Ryan Shepherd <ryansh@microsoft.com>
Co-authored-by: Eric Langlois <erlangl@microsoft.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
Co-authored-by: Will Thant <kythant@microsoft.com>
Co-authored-by: Huzaifa Danish <Huzaifa.Danish@microsoft.com>
Co-authored-by: Huzaifa Danish <modanish@microsoft.com>
Co-authored-by: andreww-msft <30507740+andreww-msft@users.noreply.github.com>
Co-authored-by: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-Infrastructure Build, test, source layout, package construction needs-triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants