Граф коммитов

4 Коммитов

Автор SHA1 Сообщение Дата
Howard Kapustein 4f3eabf1aa
Incorporate API Review feedback (#2957) 2022-09-12 14:46:05 -07:00
Kyaw Thant 3076f9cb22
Manual FI Main to Develop (#2949) 2022-09-08 17:17:27 -07:00
Eric Johnson 6c2be6d140
Excluding build artifacts from copyright check (#2864)
* 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>
2022-08-26 15:00:43 -07:00
Howard Kapustein 344d07b129
DeploymentManager auto-initializer (#2835)
* 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
2022-08-17 19:14:25 -07:00