Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSIX Dynamic Dependencies #393

Merged
merged 75 commits into from
Mar 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
d33bfae
Added initial skeleton of DynamicDepedencies Flat-C APIs
DrusTheAxe Aug 12, 2020
5de91e9
Preparing to remove obsolete skeletal samples
DrusTheAxe Dec 3, 2020
96dfbf8
VS updated the sln after loading
DrusTheAxe Dec 3, 2020
ae3faa9
Removed dead entry leftover from a prior bad merge
DrusTheAxe Dec 23, 2020
a4a5f76
Added start of UndockedRegFreeWinRT to ProjectReunion_DLL
DrusTheAxe Dec 24, 2020
a0db651
Reworked URFW #includes to cull out redudancies and consolidate with …
DrusTheAxe Dec 24, 2020
7764b3a
Incorproated URFW's DllMain setup logic. Reverted ComPtr usage to min…
DrusTheAxe Dec 24, 2020
ead89cb
Reworking WinRT support to better fit with Mdd + URFW architectures
DrusTheAxe Dec 27, 2020
8f5439a
Parse appxmanifest.xml for WinRT inproc servers
DrusTheAxe Jan 4, 2021
9ca48b5
Added slightly improved error reporting to makemsix.cmd
DrusTheAxe Jan 8, 2021
4e97cb4
Grabbed updated test cert
DrusTheAxe Jan 8, 2021
c97d1e3
WinRT support in progress but running into reentrancy issues. Need to…
DrusTheAxe Jan 14, 2021
0a8b9ae
Reworking WinRT support to avoid reentrancy problems
DrusTheAxe Jan 14, 2021
d642546
Checkpointing while revising the WinRT support
DrusTheAxe Jan 18, 2021
6b08095
Corrected AppxManifest parsing and cleaned up some error reporting
DrusTheAxe Jan 18, 2021
9c74ce9
Tweaked error logging to avoid false spew to the debug output
DrusTheAxe Jan 18, 2021
499b83c
Updated appxmanifest parsing to produce absolute filenames (not packa…
DrusTheAxe Jan 18, 2021
eed1cfa
Fix WinRT not passing down lifetimeArtifact
DrusTheAxe Jan 18, 2021
19fb2e5
Fixed PSID user support. Fixed WinRT's GetFromId(). Added WinRT's mis…
DrusTheAxe Jan 19, 2021
3d4a274
Small fix in text code. Something's wrong with the exception throw/ca…
DrusTheAxe Jan 20, 2021
26cf2ac
Doh! Catching hresult_error, not hresult! Tests now pass as expected.…
DrusTheAxe Jan 20, 2021
657811c
Removed or fixed up some dated comments. Added thread safeto to WinRT…
DrusTheAxe Jan 20, 2021
3c80410
Updated WinRTPInprocModule.Load handling of m_dll to be threadsafe. F…
DrusTheAxe Jan 21, 2021
4676e65
Switched PackageGraphNode to use MDD_PACKAGEDEPENDENCY_CONTEXT instea…
DrusTheAxe Jan 21, 2021
95223f2
Fixed a lock reentrancy error
DrusTheAxe Jan 21, 2021
c3b9d5b
Updated spec with DDLM info
DrusTheAxe Jan 22, 2021
8f92660
Incorporated feedback
DrusTheAxe Jan 26, 2021
47090ea
Incorporated feedback
DrusTheAxe Jan 29, 2021
277efaf
TAEF and CppUnitTest can't both be used by a project (incompatible de…
DrusTheAxe Feb 2, 2021
62bd1bd
Fixed build break by removing OutDir in Release|x64 flavor of Dynamic…
DrusTheAxe Feb 2, 2021
35f9c29
Fix IDynamicDependencyLifetimeManager's Makefile.mak support for Win3…
DrusTheAxe Feb 2, 2021
18e0bf6
Fixed ARM builds. Partially fixed ARM64 builds (less broken; somethin…
DrusTheAxe Feb 2, 2021
6b24d95
Added References to Framework.Math.Add/Multiply projects so DynDep Te…
DrusTheAxe Feb 3, 2021
47b858e
Removed dead commented code (leftover from earlier debugging)
DrusTheAxe Feb 9, 2021
721d174
Fixed a typo
DrusTheAxe Feb 9, 2021
35999bc
Fixed AppLifecycle namespace. Fixed project references/dependencies t…
DrusTheAxe Feb 10, 2021
742d0b2
Minor correction of test MSIX manifests
DrusTheAxe Feb 10, 2021
654f17b
Fixed a regression in Add. Updated Remove to ignore context=null (jus…
DrusTheAxe Feb 11, 2021
133b6cc
Added #include <appmodel.h> to MddBootstrap.h to make it more self-co…
DrusTheAxe Feb 11, 2021
41037b5
Wired up AppLifecycleTests for Dynamic Dependencies! Genericized (and…
DrusTheAxe Feb 11, 2021
4e50a6c
Updated AppLifecycle tests to use DynamicDependencies. Changed Dynami…
DrusTheAxe Feb 12, 2021
1cf0a93
Added files missing from previous commit. Refactored supporting test …
DrusTheAxe Feb 12, 2021
2e78897
Refactored Test APIs to be more shrinkwrapped (easier to use, harder …
DrusTheAxe Feb 12, 2021
7e255d9
Fixed ARM64 dlldata.c compile error (Hint: -DWIN32 is needed for dlld…
DrusTheAxe Feb 12, 2021
1db727e
Added 'Install Test Certificate' step to the build pipeline. Fingers …
DrusTheAxe Feb 13, 2021
6368bf3
Experimenting with a fix to the pipeline adding Install Test Certific…
DrusTheAxe Feb 13, 2021
6820f0a
Fixed typo
DrusTheAxe Feb 13, 2021
d021759
Moved Boostrap packages Setup/Cleanup from Class- to Method-Setup/Cle…
DrusTheAxe Feb 13, 2021
e845e83
Added SetupPackages to CLASS_SETUP as an experiment to fix AppLifeCyc…
DrusTheAxe Feb 13, 2021
2f1f20c
Shuffled some fixture work and sprinkled in an ugly smattering of pri…
DrusTheAxe Feb 14, 2021
8d2e657
Yet more debug hackery. And the hunt continues
DrusTheAxe Feb 14, 2021
b7a850b
More testery
DrusTheAxe Feb 14, 2021
61cf688
Expanded printf-debugging logic to provide more execution context (po…
DrusTheAxe Feb 17, 2021
4358631
Can't 'include' a manifest when it's also Copied
DrusTheAxe Feb 17, 2021
a9d2986
Rejiggered the GetActivatedEventArgsIsNull (UAP) test to behave as ex…
DrusTheAxe Feb 17, 2021
407f879
Restored IsolationLevel=Method for UAP tests
DrusTheAxe Feb 17, 2021
d2f82cb
Yet more test hackery
DrusTheAxe Feb 17, 2021
4085e34
Narrowing tests
DrusTheAxe Feb 17, 2021
fd41463
Yet more narrowing of test to identify solutions
DrusTheAxe Feb 17, 2021
e582a9a
Modified to test fixes for the Protocol test
DrusTheAxe Feb 19, 2021
246a9e7
Added DevCheck.cmd/ps1 to check and (if necessary) fix the developmen…
DrusTheAxe Mar 3, 2021
6a6e2d1
Fixed DevCheck error counting/reporting
DrusTheAxe Mar 3, 2021
2310a0b
Moved diagnostic aids into ProjectReunion.Test.Diagnostics.h
DrusTheAxe Mar 4, 2021
a24a483
Added -Check... options to DevCheck (specify nothing is equivalent to…
DrusTheAxe Mar 4, 2021
1321112
Updated build pipeline command's arguments to setup TAEF service to m…
DrusTheAxe Mar 4, 2021
8e7047e
Removed accidental duped task
DrusTheAxe Mar 4, 2021
b21240e
Removed some old debugging code
DrusTheAxe Mar 5, 2021
46ea056
Disabled the AppLifecycleTests task in the CI/Pipeline as github runs…
DrusTheAxe Mar 5, 2021
47bb22e
Add temp/ to .gitignore for temporary files. Added temp\MSTest.pfx ge…
DrusTheAxe Mar 8, 2021
9a9b3d7
Added temporary file to unblock development. Will be deleted when Dev…
DrusTheAxe Mar 8, 2021
2be7c84
updated projects to use temp\MSTest.pfx to sign packages
DrusTheAxe Mar 8, 2021
2f0053b
Moved temp .pfx generation to BEFORE building projectreunion.sln (as …
DrusTheAxe Mar 8, 2021
55578d1
Removed investigation code from AppLifecycleTests
DrusTheAxe Mar 9, 2021
fdc02d8
Incorporated Scott's feedback
DrusTheAxe Mar 9, 2021
1041c55
Merge branch 'main' into user/drustheaxe/dyndep
DrusTheAxe Mar 9, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,9 @@ installer/dev/project_reunion_definitions_override.h
# Installer test packages
!installer/test/testpackages/

# Local temp storage
temp/

# Project Reunion specific files
Microsoft.WinUI.AppX.targets
dev/vsix/extension/LICENSE
Expand Down
458 changes: 458 additions & 0 deletions ProjectReunion.sln

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ steps:
feedsToUse: config
nugetConfigPath: ${{ parameters.nugetConfigPath }}

- task: powershell@2
displayName: 'Create pfx to sign MSIX test packages (DevCheck)'
inputs:
targetType: filePath
filePath: tools\DevCheck.ps1
arguments: -CheckTestPfx -Clean -Offline -Verbose
workingDirectory: '$(Build.SourcesDirectory)'

- task: VSBuild@1
displayName: 'Build solution ${{ parameters.solutionPath }}'
inputs:
Expand All @@ -66,11 +74,29 @@ steps:
msbuildArgs: '/p:AppxPackageDir="${{ parameters.appxPackageDir }}" /p:AppxBundle=Never /p:AppxSymbolPackageEnabled=false /binaryLogger:$(Build.SourcesDirectory)/${{ parameters.solutionPath }}.$(buildPlatform).$(buildConfiguration).binlog /p:ProjectReunionVersionBuild=$(builddate_yymm) /p:ProjectReunionVersionRevision=$(builddate_dd)$(buildrevision) /p:VCToolsInstallDir="$(VCToolsInstallDir)\" /p:PGOBuildMode=$(PGOBuildMode)'

- task: CmdLine@2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am adding credscan to the pipeline which is going to cause the pipeline to break because of this certificate. That means we are going to have to remove the pfx and the cer from this repo. We can use Azure Key Vault which we have already setup to place a certificate file in the right place for running the tests.

But for running the tests locally, we should set up a script to run before running the tests to create and install the certificate.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@riverar riverar Feb 24, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend using azuresigntool and skipping all the file-based operations completely. (Example in production https://github.com/File-New-Project/EarTrumpet/blob/master/.github/workflows/main.yml#L327-L328). This simplifies the workflow and resolves credscan concerns.

Copy link

@sylveon sylveon Feb 25, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bit offtopic, but how would that be used to sign APPX packages? If you're using a wapproj, you currently directly put a certificate thumbprint in the project properties and the build system invokes signtool for you.

Copy link
Contributor

@riverar riverar Feb 25, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I highly recommended you forget that feature exists 😋 and pass in /p:AppxPackageSigningEnabled=false when building Packaging projects. Then sign the artifacts manually. Thanks for asking as that's an important flag @kythant will need!

(I edited my main.yml a few comments above to point to our appx signing and not an executable image.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kythant you can't remove MSTest.cer/pfx without breaking all not-packaged inner-loop development. DynDep's tests need signed test packages during development (inner-loop), as will every other developer working on not-packaged tests.

MSTest.cer/pfx shouldn't be used to sign real packages and you may even have alternative solutions for tests executed during the CI/Pipeline but how do you expect inner-loop testing to happen?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-build script in the vcxproj to generate a certificate file if it doesn't exist?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-build script in the vcxproj to generate a certificate file if it doesn't exist?

Adding a cert requires admin privilege.

This is generally something devs do once up front - just like they install VS, the needed Windows SDKs, etc. Requiring an admin prompt for a 1-time thing isn't unreasonable. Requiring it every time you hit F5 is...unwise. We do NOT want devs routinely forced to use an admin prompt to do development. To compound the problem, DynDep doesn't support elevation so running VS elevated is also counter-productive.

Yes it's possible to add a project "IF not certstore.Exists(ReunionMSTest) { GenerateCert(); Run(elevated, "certstore.exe -addcert TrustedPeople blah.cer"); } but that's not free or seamless. It's desirable for inner-loop to be fast and friction-free. Adding 1-time setup work to inner-loop is the wrong direction.

Remember, this is something every non-packaged test will require. Having the build automagically JustDoIt(TM) may be reasonable for CI/Pipeline but not for day to day development.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK, it shouldn't need admin to add it in the user store instead of the machine store, and that's how VS does it (it's able to create and register certs for sideloading MSIX without admin)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's how VS does it (it's able to create and register certs for sideloading MSIX without admin)

Are you referring to when you debug a VS packaged project? F5?

That calls packageManager.RegisterPackageAsync(...,DeploymentOptions=DevelopentMode) resulting in a package with Package.SignatureKind=Developer, or more specifically GetStagedPackageOrigin()=DeveloperUnsigned.

DeploymentOptions.DevelopmentMode has restrictions. Even if you can register a framework package this way (not entirely positive; I'm checking) it's generally not recommended. It can also lead to some odd test problems e.g. one test runs as a user, registers the framework then fails or you're debugging and stop before any cleanup. Tests running as another user (say, you) will fail to register. I'd prefer to make it harder to cause problems down the road, not easier.

displayName: 'Run AppLifeCycleTest'
displayName: 'Install Test Certificate'
inputs:
script: 'certutil.exe -addstore TrustedPeople MSTest.cer'
workingDirectory: '$(Build.SourcesDirectory)\build'

- task: powershell@2
displayName: 'Setup TAEF Service (DevCheck)'
inputs:
script: 'te.exe CppTest.dll'
workingDirectory: '$(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration)\$(buildPlatform)\CppTest'
condition: or(eq(variables.buildPlatform, 'x64'), eq(variables.buildPlatform, 'x86'))
targetType: filePath
filePath: tools\DevCheck.ps1
arguments: -CheckTAEFService -Offline -Verbose
workingDirectory: '$(Build.SourcesDirectory)'

#DISABLED - GitHub runs as a a built-in Administrator (thus Elevated and no split-token)
# TAEF Service can't RunAs:RestrictedUser from this account thus all tests Failed or Blocked
# and Dynamic Dependencies doesn't support Elevation so it's impossible for this test to
# work correctly today. Disabling until we move off GitHub's pipeline for test execution
# - task: CmdLine@2
# displayName: 'Run AppLifeCycleTest'
# inputs:
# script: 'te.exe CppTest.dll'
# workingDirectory: '$(Build.SourcesDirectory)\BuildOutput\$(buildConfiguration)\$(buildPlatform)\CppTest'
# condition: or(eq(variables.buildPlatform, 'x64'), eq(variables.buildPlatform, 'x86'))

- task: PublishBuildArtifacts@1
displayName: 'Publish ${{ parameters.solutionPath }} binlog'
Expand Down
Binary file added build/MSTest.cer
Binary file not shown.
63 changes: 63 additions & 0 deletions build/MSTest.spfx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
-----BEGIN CERTIFICATE-----
MIILSgIBAzCCCwYGCSqGSIb3DQEHAaCCCvcEggrzMIIK7zCCBggGCSqGSIb3DQEH
AaCCBfkEggX1MIIF8TCCBe0GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcN
AQwBAzAOBAjIXdhD2Rgv4AICB9AEggTYfAO/jMECF0pFl2cRPoakYKpKYFPFQeUk
xXCyQhYKzLf9VPOWeboOmmhzQ2CXRfMLkSc2xUPeVkha3SrhLFzTrYIJNd0Fn2JI
V8EyP3hpWdV5B1EDMe0tI/uQS7oBoAGmxuna7681UpeFDskctiJTtWz0cCVLhLcK
amzH+EJi5X1r120fFtGLebb6Fom2ZV0xKNJcEYxZr7cX9e9oE7DtMRZ5DVRd20V0
ovtqwLY+6TpmS+a7g95h5jSBM9hYEXq4z1S9rl42iyDvdF74pcjG21+5Z20U04Cl
qiySSTcn6GlzWhJevLSEwbREbRWkYEIgE5bZFAfYfgQ3Qas1qI4JadMkcdTkRypR
InrArU6hB+H/X8i/tJ2VeCs2rRTYfDqydlzoU6LormoRvbB50bup6O90yw0bsHD9
/oIE9fiSnsf8GKzS14JYKMkEpCzrqf7suYYOhV/KwRMqI2E0i5H1ZrlOmGik9vq1
RYbh6+028QXBYsBBw80VRWr5OKGyrSP8xcK2Qg7XcDB4aLJ7QPRFQLtOOwWkuVOX
SwYJs6N6QXhSvQpfE0dsEgTXyJ3tP7CJuGT6aWEHkHOkwBhH2zQ6lejEMHztWdEv
zXis8vGtP5AxrDVx3f055n9hsamw/0R0pnzHMXmX0OJinb3ZuA2RsevQXK0nwLk+
Ljok1wcEBVXSUD6Ywd59cB1zdD89F/Tg5zgsNZ8SPhuGUs6ctNL0ymUJMGC3571z
clVVDnvM03FH4zhaZDkn4DAIrukDcQX2/6esLTzTsjGxzRTM4Y9YUAXT3C6LnctV
Sr0t9JpVILYqh68MonLND0jz8H+zVe2KNj0ROwv8IBGcG8a+klt61QBTlAAG8ee9
plqPrHKI62m98upspKn3MzqKN9xVedfB1v1ijO7MZrD8juNzDrSYzO6VlyA+oMjr
pXyj9CqMqPGy2/sr5tpWcYEQe8LdEWlRQBVZIdelNkIm3C6jSgSSeSxXDB8IXNt6
fHtzCTCj4s0sJqipIOwECEQaSYVJlUKSZLJTYAfdfBLDy/Lz+G6n5/e9RRvWBeJx
kqnOmJhXlyZ6wZJO5Fvdv1UF/zRCPUYNyorEXkA9Z82yTJ7KdqAOOUs/fRuiNvOg
PezX/qyv2ZzR9LqU0pRrVVhoFV7cyllSDxXqPcR1Iq/a6OdJ3lEc95hUk+4TIioy
ch9eFVDUwHJ98K9+7G78d9zQ7VpruE1a/FK9QOoHUPbfl4qpDxSgQfm/weD+qwo+
g4jjCby4l4GM23M/dzXbMEL4ilV7BU1tkmqzcF5Zee5zBiIVWLrt/5npuVi/8ZJF
N/T8n1VLaLXGHcn7dlI9pl1+88DW2EKGDXor9CuOOOeH2fi0blgRUzD2mRZXnDjE
4tfB0FTyUtnN5IVsKSvTEhQnywiByFMj6jPzZ+WmEEbxs3KbQHsofModvAVS/UbW
uIojhQ+kT3ncIMZeS2IHbwZTPiAbDn8adg9rFptEQkQMFSyDmHwmRN4HPDGcnQrA
gcBJbNLy5unxlwG+pUfttjJaS9q+z/eWyOhLiPI98aEJYrVZ1EQwyGTSYKN9tQ+C
GajShWYPkVV7rjBNQCoWUDjuokW7GkeYe2YlZ58YwH7tZb0CkDw4j4WPmSoOcUpf
xRd+KVBiGv4Gd/PannezhDGB2zATBgkqhkiG9w0BCRUxBgQEAQAAADBdBgkrBgEE
AYI3EQExUB5OAE0AaQBjAHIAbwBzAG8AZgB0ACAAUwB0AHIAbwBuAGcAIABDAHIA
eQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByMGUGCSqGSIb3
DQEJFDFYHlYAUAB2AGsAVABtAHAAOgA2ADIAOQBhADgAMQBmADQALQA0AGUAMgAz
AC0ANABjAGQAMgAtADgAZAAxADMALQA2ADEAZQBjAGUANgBmADEAMwA5AGIAODCC
BN8GCSqGSIb3DQEHBqCCBNAwggTMAgEAMIIExQYJKoZIhvcNAQcBMBwGCiqGSIb3
DQEMAQMwDgQIu/cm7lKUSWsCAgfQgIIEmIsUvJdZcNiVPybOD6v87I/BFOOg6S0K
MV+hJdk9h7yGbIMkYtCW9B1jIHp07Mr/5ANGczkXgkqtPhz2fRqQSzg3LKZJOxpP
2zPjRxvWLT06gEIDKZRbvNf+vesr+hw0WomhBHlzXV54aDgVVECEFZaHZnI1TgiR
NwsnjXliMUkwQefMHfkFBYHv42twhAHHYdiA67Z3hQAMybASPiLeP6zV1MKuuzth
qBwysrPmI3ldBCoAATyE/ythyby9/6NWWODXOy6+ooeMto2eyk+9V1Je3PVW8OKX
bljHnrB8eJIEqM9WxV+Vrqk/Hxhq3+Q/vCm1PKQH+5EKkMQIyDdIrdtMvkR8l9AZ
P51G7V9/ZUF3fn4m2HCKytkBWZBJI9yJXa+6FCZM2fZRxDdKKfXRcde7+0AqTWRr
rSNOhr0cu2ol0bcHKHQHOKjKDNPoDQrVXo6uw+Zhl5+Ly8d50K8zOlqZrru7GpLj
xX/VaVdB+fVpjtZIjGA14URrHux0StqGr7Ex7a5Fp4QB6eHkZX35bGO4ME7oZRHL
QVDXKDEqhn8BXYE0rKl1F+iTQqkxL72YbiBRu0jxyGSzifX8h4oMijG5PfRJgEkP
RLYRjJjxFFKZKJ8E2y5Du4xM0lYdU2td3iQyUkSip+1WVV/88T+ysiWYIa1dp+qt
FNiXxOhriUBJ3OuIcgLNJZ1MaDwYHe2yhr4g8AL5xI9fnbjwy3TSHclLGb5hfT5u
bFYPAWGvmxwVP2ntgnpjWO86AIl0fAMwHQern2CgnfomhEr7L/SLlAbqdrbD6t29
K94Xfacf6CphD8xgsMRKqG7ZIqOSbvQzSm3/810eLbL3ubEl38w33Kj1JWVHJaSN
HH5NQfsJm6XrL3aDAVTENVqdTcW/Qg9n9XR/rVgyMbFXpfigWPBlO9aOUravzez/
bdsyLohkaaevbj4adqkCMkTYddIebdBoo/+FyAb4uShV/XaO0W+zs9xvqNBXXDf9
XJJpJOPn9BK0NTxbb8eA1CwM7dMZNqdoLxGjrc0gRew41ApTUQ+HJDB4+qQxn9Oy
1ZREip2Uw1poxgBlNUlVGq5B5JGrZlqVtaJQygCSNHLWvXxUspF36uWQ6z5dqlO1
wK0aCziSLsY/gaeqWHvzTEHZvv5yQK3vvMiKT++wgOiiKijNhEoflyoU3hgu1jUR
iNhbnIgByIiJkXdnC7gv2UJKvLlIMT45snnmUvmqvRryowqXZ75r7XezmseJ4I21
Heamung4U65fojsE1jURlcpt87x33a5coDzluCMTZprODLQZbBj39G4pwE3MKQXh
6Im1O9qR4P2sgMx6lluRK94dkkn8+MvlK1GOso5T6HTwrkGgK1Sfpiz50SmbULx3
kiA1OVmraipVOrXD5pmT2AFt/vjkWJZMQgis2lOmTpuUz6jfEBUvfXvTXSk48KhG
XRnq60R+ABsiW5FBrbwwGZG3hOhVoBdwhlQ5bBw7JTnGNhSPtvHPA7E3ZwhDxpn3
4UbIprfWVLrR9BbWayvt34JIN8WZkjH7bwhnZo3Q8yfzN1nk8+gRYkwjgky49UWg
9TA7MB8wBwYFKw4DAhoEFG8Ifc9pvQshFzC3cnRPBTfW+FoHBBT2b3CHfQO0hexn
tBf4/CkiLemo8AICB9A=
-----END CERTIFICATE-----
2 changes: 1 addition & 1 deletion dev/AppLifecycle/ActivatedEventArgsBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
using namespace winrt::Windows::ApplicationModel::Activation;

Expand Down
4 changes: 2 additions & 2 deletions dev/AppLifecycle/ActivationRegistrationManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
#include <pch.h>
#include <ActivationRegistrationManager.h>
#include <ActivationRegistrationManager.g.cpp>
#include <Microsoft.ApplicationModel.Activation.ActivationRegistrationManager.g.cpp>

#include "LaunchActivatedEventArgs.h"
#include "ProtocolActivatedEventArgs.h"
#include "FileActivatedEventArgs.h"
#include "Association.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
void ActivationRegistrationManager::RegisterForFileTypeActivation(
array_view<hstring const> supportedFileTypes, array_view<hstring const> supportedVerbs,
Expand Down
6 changes: 3 additions & 3 deletions dev/AppLifecycle/ActivationRegistrationManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once

#include <ActivationRegistrationManager.g.h>
#include <Microsoft.ApplicationModel.Activation.ActivationRegistrationManager.g.h>

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
struct ActivationRegistrationManager
{
Expand All @@ -21,7 +21,7 @@ namespace winrt::Microsoft::ProjectReunion::implementation
};
}

namespace winrt::Microsoft::ProjectReunion::factory_implementation
namespace winrt::Microsoft::ApplicationModel::Activation::factory_implementation
{
struct ActivationRegistrationManager : ActivationRegistrationManagerT<ActivationRegistrationManager,
implementation::ActivationRegistrationManager>
Expand Down
4 changes: 2 additions & 2 deletions dev/AppLifecycle/AppLifecycle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@

#include <pch.h>
#include <AppLifecycle.h>
#include <AppLifecycle.g.cpp>
#include <Microsoft.ApplicationModel.Activation.AppLifecycle.g.cpp>

#include "LaunchActivatedEventArgs.h"
#include "ProtocolActivatedEventArgs.h"
#include "FileActivatedEventArgs.h"
#include "Association.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
std::tuple<std::wstring, std::wstring> ParseCommandLine(std::wstring commandLine)
{
Expand Down
6 changes: 3 additions & 3 deletions dev/AppLifecycle/AppLifecycle.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once

#include <AppLifecycle.g.h>
#include <Microsoft.ApplicationModel.Activation.AppLifecycle.g.h>

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
struct AppLifecycle
{
Expand All @@ -14,7 +14,7 @@ namespace winrt::Microsoft::ProjectReunion::implementation
};
}

namespace winrt::Microsoft::ProjectReunion::factory_implementation
namespace winrt::Microsoft::ApplicationModel::Activation::factory_implementation
{
struct AppLifecycle : AppLifecycleT<AppLifecycle, implementation::AppLifecycle>
{
Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/AppLifecycle.idl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

namespace Microsoft.ProjectReunion
namespace Microsoft.ApplicationModel.Activation
{
static runtimeclass AppLifecycle
{
Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/Association.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <pch.h>
#include "Association.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
HKEY GetRegistrationRoot()
{
Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/Association.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
static const std::wstring c_protocolArgumentString = L"ms-protocol";
static const std::wstring c_fileArgumentString = L"ms-file";
Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/FileActivatedEventArgs.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include "ActivatedEventArgsBase.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
using namespace winrt::Windows::Foundation::Collections;
using namespace winrt::Windows::ApplicationModel::Activation;
Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/LaunchActivatedEventArgs.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include "ActivatedEventArgsBase.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
using namespace winrt::Windows::ApplicationModel::Activation;

Expand Down
2 changes: 1 addition & 1 deletion dev/AppLifecycle/ProtocolActivatedEventArgs.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <winrt/Windows.Foundation.h>
#include "ActivatedEventArgsBase.h"

namespace winrt::Microsoft::ProjectReunion::implementation
namespace winrt::Microsoft::ApplicationModel::Activation::implementation
{
using namespace winrt::Windows::Foundation::Collections;
using namespace winrt::Windows::ApplicationModel::Activation;
Expand Down
Loading