* Excluding build artifacts from copyright check
* Adding 'and Contributors' to copyright headers
* Updating some missed files and adding -help support to script
Co-authored-by: Eric Johnson <ejohn@microsoft.com>
* 40724739: DeploymentManagerAutoInitializer. Added auto-initializer, inspired by Bootstrapper's auto-initializer. Split test\Deployment into subdirs. Working through build-isms
Add an auto-initializer for DeploymentManager (very similar to the Bootstrapper's auto-initializer).
If DeploymentManager Initialize fails...
...Write to the eventlog
...Optionally
* DebugBreak
* DebugBreak if a debugger is attached to the process
* FailFast
* MessageBox (modeled after .NET's) asking if you'd like to install the WindowsAppRuntime and if so, ShellExecute(url) to the download page
The optional behavior is triggered by new `DeploymentInitializeOptions` properties or by environment variables
```
SET MICROSOFT_WINDOWSAPPRUNTIME_DEPLOYMENTMANAGER_INITIALIZE_DEBUGBREAK=1
SET MICROSOFT_WINDOWSAPPRUNTIME_DEPLOYMENTMANAGER_INITIALIZE_SHOWUI=1
SET MICROSOFT_WINDOWSAPPRUNTIME_DEPLOYMENTMANAGER_INITIALIZE_FAILFAST=1
```
Testing partial but incomplete as I need a real build (franken-hacking has been too messy to finish E2E testing). The DeploymentManager auto-initializer is inert/unused unless WindowsAppSdkDeploymentManagerInitialize=true and the default to enable that is commented out for now, making this PR functional but inert so I can get a build turned with real packages for further testing.
*.targets updated to provide build-time control.
* **To disable the auto-initializer** the auto-initialize set the property `WindowsAppSDKDeploymentManagerAutoInitialize`=`false`
* **If the auto-initalizer is enabled** you can define properties to control the options passed via `DeploymentInitializeOptions` to `DeploymentManager.Initialize()`
* **WindowsAppSDKDeploymentManagerAutoInitializeOptions_Default=true** -- use the default options (OnError_ShowUI)
* **WindowsAppSDKDeploymentManagerAutoInitializeOptions_None=true** -- use no options (None)
* **WindowsAppSDKDeploymentManagerAutoInitializeOptions_*=true** -- enable the option where * is one or more of the following
* OnError_DebugBreak
* OnError_DebugBreak_IfDebuggerAttached
* OnError_FailFast
* OnError_ShowUI
* OnNoPackageIdentity_NoOp
For example, to disable the auto-initializer add to your *proj file:
```xml
<PropertyGroup>
<WindowsAppSDKDeploymentManagerAutoInitialize>false</WindowsAppSDKDeploymentManagerAutoInitialize>
</PropertyGroup>
```
or to enable the auto-initializer (default) but use the DebugBreak+FailFast options (instead of the default)
```xml
<PropertyGroup>
<WindowsAppSDKDeploymentManagerAutoInitializeOptions_OnError_DebugBreak>true</WindowsAppSDKDeploymentManagerAutoInitializeOptions_OnError_DebugBreak>
<WindowsAppSDKDeploymentManagerAutoInitializeOptions_OnError_ShowUI>true</WindowsAppSDKDeploymentManagerAutoInitializeOptions_OnError_ShowUI>
</PropertyGroup>
```
https://task.ms/40724739
* Added VerifyCopyrightHeaders.cmd and tweaked error message about it
* Return Extended Hresult instead of Hresult to help customers with a non-normalized error codes.
* Search for Main instead of Fw Package
* Add Comments
* Update AppLicensingTransport package version
Co-authored-by: Santosh Chintalapati <sachinta@ntdev.microsoft.com>
* Return Extended Hresult instead of Hresult to help customers by providing them with unbucketed error codes instead of bucketed error codes, in a best effort manner.
* Deployment agent break away process creation fixes (#2554)
* Create Breakaway process for DeplomentAgent.exe in Running state (not in suspended state)
* And remove Resume
* Don't inherent parent handles in breakaway process
* Create process outside desktop app runtime environment instead
* Don't return a copy but a reference to tracelogger activity class object
Co-authored-by: Santosh Chintalapati <sachinta@ntdev.microsoft.com>
* Bug 39711964: WinAppSDK: DeploymentManager doesn't handle ERROR_INSUFFICIENT_BUFFER
* Forgot to remove the original (bugged) line
* Fix Breakaway support
* Remove PROC_THREAD_ATTRIBUTE_HANDLE_LIST. The code was derived from AppLifecycleAgent but UpdateProcThread(PROC_THREAD_ATTRIBUTE_HANDLE_LIST, size=0, list=null) error'd. We don't actually need a list of handles (unlike AppLifecycleAgent was passing a list) so we can remove this attribute
* Log Installer events to disk (Application.evtx or Eventvwr.exe -> Windows Logs -> Application) in "WindowsAppRuntime Installer" source.
Co-authored-by: Santosh Chintalapati <sachinta@ntdev.microsoft.com>
Create DeploymentAgent.exe and run it in a breakaway process from Deployment API when the caller is packaged process and has MediumIL/HigherIL integrity level.
Co-authored-by: Santosh Chintalapati <sachinta@ntdev.microsoft.com>
* Add DeploymentInitializeOptions runtime class to Deployment Interface and force command line option to WARInstaller
* Restart Push Notifications LRP after WindowsAppSDK MSIX packages are successfully installed with ForceDeployment
option
Co-authored-by: Santosh Chintalapati <sachinta@ntdev.microsoft.com>
* 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>