diff --git a/.github/workflows/cd-sideload-preview.yml b/.github/workflows/cd-sideload-preview.yml
index 26b25eb55a75..2c7da7df9938 100644
--- a/.github/workflows/cd-sideload-preview.yml
+++ b/.github/workflows/cd-sideload-preview.yml
@@ -47,7 +47,7 @@ jobs:
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet
uses: NuGet/setup-nuget@v2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
@@ -74,10 +74,6 @@ jobs:
run: |
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt
- - name: Restore NuGet
- shell: pwsh
- run: 'nuget restore $env:SOLUTION_NAME'
-
- name: Restore Files
shell: pwsh
run: |
@@ -85,14 +81,16 @@ jobs:
-t:Restore `
-p:Platform=$env:PLATFORM `
-p:Configuration=$env:CONFIGURATION `
- -p:PublishReadyToRun=true
+ -p:PublishReadyToRun=true `
+ -v:quiet
- name: Build launcher project
shell: pwsh
run: |
msbuild "$env:LAUNCHER_PROJECT_PATH" `
-p:Platform=$env:PLATFORM `
- -p:Configuration=$env:CONFIGURATION
+ -p:Configuration=$env:CONFIGURATION `
+ -v:quiet
- name: Build & package Files
shell: pwsh
@@ -107,7 +105,8 @@ jobs:
-p:AppxBundle=Always `
-p:UapAppxPackageBuildMode=Sideload `
-p:GenerateAppInstallerFile=True `
- -p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL
+ -p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL `
+ -v:quiet
- name: Remove empty files from the packages
shell: bash
diff --git a/.github/workflows/cd-sideload-stable.yml b/.github/workflows/cd-sideload-stable.yml
index 7a6d4a24e22a..00a3396f843f 100644
--- a/.github/workflows/cd-sideload-stable.yml
+++ b/.github/workflows/cd-sideload-stable.yml
@@ -47,7 +47,7 @@ jobs:
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet
uses: NuGet/setup-nuget@v2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
@@ -74,10 +74,6 @@ jobs:
run: |
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt
- - name: Restore NuGet
- shell: pwsh
- run: 'nuget restore $env:SOLUTION_NAME'
-
- name: Restore Files
shell: pwsh
run: |
@@ -85,14 +81,16 @@ jobs:
-t:Restore `
-p:Platform=$env:PLATFORM `
-p:Configuration=$env:CONFIGURATION `
- -p:PublishReadyToRun=true
+ -p:PublishReadyToRun=true `
+ -v:quiet
- name: Build launcher project
shell: pwsh
run: |
msbuild "$env:LAUNCHER_PROJECT_PATH" `
-p:Platform=$env:PLATFORM `
- -p:Configuration=$env:CONFIGURATION
+ -p:Configuration=$env:CONFIGURATION `
+ -v:quiet
- name: Build & package Files
shell: pwsh
@@ -107,7 +105,8 @@ jobs:
-p:AppxBundle=Always `
-p:UapAppxPackageBuildMode=Sideload `
-p:GenerateAppInstallerFile=True `
- -p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL
+ -p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL `
+ -v:quiet
- name: Remove empty files from the packages
shell: bash
diff --git a/.github/workflows/cd-store-preview.yml b/.github/workflows/cd-store-preview.yml
index f4a1df97ab60..0a9c8d652b2c 100644
--- a/.github/workflows/cd-store-preview.yml
+++ b/.github/workflows/cd-store-preview.yml
@@ -44,7 +44,7 @@ jobs:
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet
uses: NuGet/setup-nuget@v2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
@@ -71,10 +71,6 @@ jobs:
run: |
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt
- - name: Restore NuGet
- shell: pwsh
- run: 'nuget restore $env:SOLUTION_NAME'
-
- name: Restore Files
shell: pwsh
run: |
@@ -82,14 +78,16 @@ jobs:
-t:Restore `
-p:Platform=$env:PLATFORM `
-p:Configuration=$env:CONFIGURATION `
- -p:PublishReadyToRun=true
+ -p:PublishReadyToRun=true `
+ -v:quiet
- name: Build launcher project
shell: pwsh
run: |
msbuild "$env:LAUNCHER_PROJECT_PATH" `
-p:Platform=$env:PLATFORM `
- -p:Configuration=$env:CONFIGURATION
+ -p:Configuration=$env:CONFIGURATION `
+ -v:quiet
- name: Build & package Files
shell: pwsh
@@ -102,7 +100,8 @@ jobs:
-p:AppxBundlePlatforms=$env:APPX_BUNDLE_PLATFORMS `
-p:AppxPackageDir="$env:APPX_PACKAGE_DIR" `
-p:AppxBundle=Always `
- -p:UapAppxPackageBuildMode=StoreUpload
+ -p:UapAppxPackageBuildMode=StoreUpload `
+ -v:quiet
- name: Remove empty files from the packages
shell: bash
diff --git a/.github/workflows/cd-store-stable.yml b/.github/workflows/cd-store-stable.yml
index 1b5113bb106f..e00aa5aa6d7b 100644
--- a/.github/workflows/cd-store-stable.yml
+++ b/.github/workflows/cd-store-stable.yml
@@ -44,7 +44,7 @@ jobs:
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet
uses: NuGet/setup-nuget@v2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
@@ -71,10 +71,6 @@ jobs:
run: |
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt
- - name: Restore NuGet
- shell: pwsh
- run: 'nuget restore $env:SOLUTION_NAME'
-
- name: Restore Files
shell: pwsh
run: |
@@ -82,14 +78,16 @@ jobs:
-t:Restore `
-p:Platform=$env:PLATFORM `
-p:Configuration=$env:CONFIGURATION `
- -p:PublishReadyToRun=true
+ -p:PublishReadyToRun=true `
+ -v:quiet
- name: Build launcher project
shell: pwsh
run: |
msbuild "$env:LAUNCHER_PROJECT_PATH" `
-p:Platform=$env:PLATFORM `
- -p:Configuration=$env:CONFIGURATION
+ -p:Configuration=$env:CONFIGURATION `
+ -v:quiet
- name: Build & package Files
shell: pwsh
@@ -102,7 +100,8 @@ jobs:
-p:AppxBundlePlatforms=$env:APPX_BUNDLE_PLATFORMS `
-p:AppxPackageDir="$env:APPX_PACKAGE_DIR" `
-p:AppxBundle=Always `
- -p:UapAppxPackageBuildMode=StoreUpload
+ -p:UapAppxPackageBuildMode=StoreUpload `
+ -v:quiet
- name: Remove empty files from the packages
shell: bash
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ced14a40b6f7..415fc84129a3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -57,7 +57,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
- name: Install XamlStyler.Console
@@ -103,15 +103,11 @@ jobs:
uses: microsoft/setup-msbuild@v2
- name: Setup NuGet
uses: NuGet/setup-nuget@v2
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- - name: Restore NuGet
- shell: pwsh
- run: 'nuget restore $env:SOLUTION_PATH'
-
- name: Restore Files
shell: pwsh
run: |
@@ -119,7 +115,8 @@ jobs:
-t:Restore `
-p:Platform=$env:ARCHITECTURE `
-p:Configuration=$env:CONFIGURATION `
- -p:PublishReadyToRun=true
+ -p:PublishReadyToRun=true `
+ -v:quiet
- if: env.CONFIGURATION != env.AUTOMATED_TESTS_CONFIGURATION || env.ARCHITECTURE != env.AUTOMATED_TESTS_ARCHITECTURE
name: Build Files
@@ -127,10 +124,10 @@ jobs:
msbuild `
$env:PACKAGE_PROJECT_PATH `
-t:Build `
- -clp:ErrorsOnly `
-p:Configuration=$env:CONFIGURATION `
-p:Platform=$env:ARCHITECTURE `
- -p:AppxBundle=Never
+ -p:AppxBundle=Never `
+ -v:quiet
- if: env.CONFIGURATION == env.AUTOMATED_TESTS_CONFIGURATION && env.ARCHITECTURE == env.AUTOMATED_TESTS_ARCHITECTURE
name: Create self signed cert as a pfx file
@@ -143,7 +140,6 @@ jobs:
$env:PACKAGE_PROJECT_PATH `
-t:Build `
-t:_GenerateAppxPackage `
- -clp:ErrorsOnly `
-p:Configuration=$env:CONFIGURATION `
-p:Platform=$env:ARCHITECTURE `
-p:AppxBundlePlatforms=$env:AUTOMATED_TESTS_ARCHITECTURE `
@@ -153,16 +149,17 @@ jobs:
-p:AppxPackageSigningEnabled=true `
-p:PackageCertificateKeyFile=$env:APPX_SELFSIGNED_CERT_PATH `
-p:PackageCertificatePassword="" `
- -p:PackageCertificateThumbprint=""
+ -p:PackageCertificateThumbprint="" `
+ -v:quiet
- if: env.ARCHITECTURE == env.AUTOMATED_TESTS_ARCHITECTURE && env.CONFIGURATION == env.AUTOMATED_TESTS_CONFIGURATION
name: Build interaction tests
run: |
msbuild $env:AUTOMATED_TESTS_PROJECT_PATH `
-t:Build `
- -clp:ErrorsOnly `
-p:Configuration=$env:CONFIGURATION `
- -p:Platform=$env:AUTOMATED_TESTS_ARCHITECTURE
+ -p:Platform=$env:AUTOMATED_TESTS_ARCHITECTURE `
+ -v:quiet
- if: env.ARCHITECTURE == env.AUTOMATED_TESTS_ARCHITECTURE && env.CONFIGURATION == env.AUTOMATED_TESTS_CONFIGURATION
name: Copy tests bin to the artifacts dir
@@ -204,7 +201,7 @@ jobs:
- name: Checkout the repository
uses: actions/checkout@v4
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
diff --git a/.github/workflows/format-xaml.yml b/.github/workflows/format-xaml.yml
index a55f8254b09f..33f002998144 100644
--- a/.github/workflows/format-xaml.yml
+++ b/.github/workflows/format-xaml.yml
@@ -43,7 +43,7 @@ jobs:
- uses: actions/checkout@v4
if: env.CAN_RUN == 1
- - name: Setup .NET 8
+ - name: Setup .NET
uses: actions/setup-dotnet@v4
- name: Set git identity
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 000000000000..173535a6c335
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+ net9.0
+ 10.0.22621.0
+ 10.0.19041.0
+ 10.0.22621.57
+
+
\ No newline at end of file
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 000000000000..6eba73837d51
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,57 @@
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Files.sln b/Files.sln
index bac074bf0609..e96ecb49a05a 100644
--- a/Files.sln
+++ b/Files.sln
@@ -1,56 +1,56 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
-VisualStudioVersion = 17.1.32421.90
+VisualStudioVersion = 17.12.35707.178
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A74DCE98-A744-4D71-A2B1-7EE4FED0936B}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{481DE2EA-E6CE-4A9C-A220-3B543B95AAA1}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{8D626EA8-CB54-BC41-363A-217881BEBA6E}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "platforms", "platforms", "{A188C26B-E731-4E0B-9D17-D21CEBD9B43F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.Core.SourceGenerator", "src\Files.Core.SourceGenerator\Files.Core.SourceGenerator.csproj", "{7B50ED23-B535-E658-9542-00885ED406FA}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{9F36C2AD-005D-4EA5-A1F1-6BC42773FC85}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.Core.Storage", "src\Files.Core.Storage\Files.Core.Storage.csproj", "{0CD123D7-CAE3-0F58-73C0-8BF39753B788}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.Shared", "src\Files.Shared\Files.Shared.csproj", "{94F77692-D47C-48D8-A1A7-645192EF38A4}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.Shared", "src\Files.Shared\Files.Shared.csproj", "{6C01E445-3C11-C76F-CE47-0B9A775ACF0A}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.Storage", "src\Files.App.Storage\Files.App.Storage.csproj", "{B8051E11-5BF2-49F7-A7C8-E3820DBB8209}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "platforms", "platforms", "{82099983-647E-F067-E69A-CD800643A918}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.Core.Storage", "src\Files.Core.Storage\Files.Core.Storage.csproj", "{53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}"
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Files.Package", "src\Files.App (Package)\Files.Package.wapproj", "{66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.BackgroundTasks", "src\Files.App.BackgroundTasks\Files.App.BackgroundTasks.csproj", "{BB1DA0B0-4E5B-4336-961E-DF389482C094}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.BackgroundTasks", "src\Files.App.BackgroundTasks\Files.App.BackgroundTasks.csproj", "{F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.InteractionTests", "tests\Files.InteractionTests\Files.InteractionTests.csproj", "{4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.Controls", "src\Files.App.Controls\Files.App.Controls.csproj", "{98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.OpenDialog", "src\Files.App.OpenDialog\Files.App.OpenDialog.vcxproj", "{A2FF3F3B-8EBC-4108-B99D-1476B7876656}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.CsWin32", "src\Files.App.CsWin32\Files.App.CsWin32.csproj", "{C1C83347-1524-3EBB-6B49-ECE025775668}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.Launcher", "src\Files.App.Launcher\Files.App.Launcher.vcxproj", "{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App", "src\Files.App\Files.App.csproj", "{6F431D82-A5FF-4833-B5E4-702E1E523126}"
- ProjectSection(ProjectDependencies) = postProject
- {1EE996D6-885E-4403-A461-26C7A4E14D26} = {1EE996D6-885E-4403-A461-26C7A4E14D26}
- {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07} = {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}
- {7756A1A4-17B5-4E6B-9B12-F19AA868A225} = {7756A1A4-17B5-4E6B-9B12-F19AA868A225}
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656} = {A2FF3F3B-8EBC-4108-B99D-1476B7876656}
- {B3FE3F3B-CECC-4918-B72B-5488C3774125} = {B3FE3F3B-CECC-4918-B72B-5488C3774125}
- {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6} = {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}
- EndProjectSection
-EndProject
-Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Files.Package", "src\Files.App (Package)\Files.Package.wapproj", "{8F60FD8E-1921-47D6-97B0-D26D7B3A4999}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.Core.SourceGenerator", "src\Files.Core.SourceGenerator\Files.Core.SourceGenerator.csproj", "{6FA07816-DE0A-4D49-84E8-38E953A33C87}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.OpenDialog", "src\Files.App.OpenDialog\Files.App.OpenDialog.vcxproj", "{A2FF3F3B-8EBC-4108-B99D-1476B7876656}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.Server", "src\Files.App.Server\Files.App.Server.csproj", "{1EE996D6-885E-4403-A461-26C7A4E14D26}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.OpenDialog.Win32", "src\Files.App.OpenDialog\Files.App.OpenDialog.Win32.vcxproj", "{B3FE3F3B-CECC-4918-B72B-5488C3774125}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.SaveDialog", "src\Files.App.SaveDialog\Files.App.SaveDialog.vcxproj", "{EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.SaveDialog.Win32", "src\Files.App.SaveDialog\Files.App.SaveDialog.Win32.vcxproj", "{7756A1A4-17B5-4E6B-9B12-F19AA868A225}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files.App.OpenDialog.Win32", "src\Files.App.OpenDialog\Files.App.OpenDialog.Win32.vcxproj", "{B3FE3F3B-CECC-4918-B72B-5488C3774125}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.Server", "src\Files.App.Server\Files.App.Server.csproj", "{A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.Storage", "src\Files.App.Storage\Files.App.Storage.csproj", "{C425951C-86B6-E4C0-724E-047E9A2C8599}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App", "src\Files.App\Files.App.csproj", "{E6BD44A2-F200-6AC3-5A80-68727B1BE71B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07} = {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656} = {A2FF3F3B-8EBC-4108-B99D-1476B7876656}
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125} = {B3FE3F3B-CECC-4918-B72B-5488C3774125}
+ {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6} = {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}
+ {7756A1A4-17B5-4E6B-9B12-F19AA868A225} = {7756A1A4-17B5-4E6B-9B12-F19AA868A225}
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC} = {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}
+ EndProjectSection
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.UITests", "tests\Files.App.UITests\Files.App.UITests.csproj", "{6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.Controls", "src\Files.App.Controls\Files.App.Controls.csproj", "{83FF8729-CC76-43E2-976F-47F0A187FC7E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.App.UITests", "tests\Files.App.UITests\Files.App.UITests.csproj", "{85D62465-0545-08C0-6135-FB568D81A323}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Files.App.CsWin32", "src\Files.App.CsWin32\Files.App.CsWin32.csproj", "{4803E2CB-3E27-447D-94FC-45B5F96E4F7A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Files.InteractionTests", "tests\Files.InteractionTests\Files.InteractionTests.csproj", "{9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -62,78 +62,96 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|arm64.ActiveCfg = Debug|arm64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|arm64.Build.0 = Debug|arm64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|x64.ActiveCfg = Debug|x64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|x64.Build.0 = Debug|x64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|x86.ActiveCfg = Debug|x86
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Debug|x86.Build.0 = Debug|x86
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|arm64.ActiveCfg = Release|arm64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|arm64.Build.0 = Release|arm64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|x64.ActiveCfg = Release|x64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|x64.Build.0 = Release|x64
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|x86.ActiveCfg = Release|x86
- {94F77692-D47C-48D8-A1A7-645192EF38A4}.Release|x86.Build.0 = Release|x86
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|arm64.ActiveCfg = Debug|arm64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|arm64.Build.0 = Debug|arm64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|x64.ActiveCfg = Debug|x64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|x64.Build.0 = Debug|x64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|x86.ActiveCfg = Debug|x86
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Debug|x86.Build.0 = Debug|x86
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|arm64.ActiveCfg = Release|arm64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|arm64.Build.0 = Release|arm64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|x64.ActiveCfg = Release|x64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|x64.Build.0 = Release|x64
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|x86.ActiveCfg = Release|x86
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209}.Release|x86.Build.0 = Release|x86
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|arm64.ActiveCfg = Debug|arm64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|arm64.Build.0 = Debug|arm64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|x64.ActiveCfg = Debug|x64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|x64.Build.0 = Debug|x64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|x86.ActiveCfg = Debug|x86
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Debug|x86.Build.0 = Debug|x86
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|arm64.ActiveCfg = Release|arm64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|arm64.Build.0 = Release|arm64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|x64.ActiveCfg = Release|x64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|x64.Build.0 = Release|x64
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|x86.ActiveCfg = Release|x86
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3}.Release|x86.Build.0 = Release|x86
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|arm64.ActiveCfg = Debug|arm64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|arm64.Build.0 = Debug|arm64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|x64.ActiveCfg = Debug|x64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|x64.Build.0 = Debug|x64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|x86.ActiveCfg = Debug|x86
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Debug|x86.Build.0 = Debug|x86
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|arm64.ActiveCfg = Release|arm64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|arm64.Build.0 = Release|arm64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|x64.ActiveCfg = Release|x64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|x64.Build.0 = Release|x64
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|x86.ActiveCfg = Release|x86
- {BB1DA0B0-4E5B-4336-961E-DF389482C094}.Release|x86.Build.0 = Release|x86
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|arm64.ActiveCfg = Debug|arm64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|arm64.Build.0 = Debug|arm64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|x64.ActiveCfg = Debug|x64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|x64.Build.0 = Debug|x64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|x86.ActiveCfg = Debug|x86
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Debug|x86.Build.0 = Debug|x86
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|arm64.ActiveCfg = Release|arm64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|arm64.Build.0 = Release|arm64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|x64.ActiveCfg = Release|x64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|x64.Build.0 = Release|x64
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|x86.ActiveCfg = Release|x86
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0}.Release|x86.Build.0 = Release|x86
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|arm64.ActiveCfg = Debug|arm64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|arm64.Build.0 = Debug|arm64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x64.ActiveCfg = Debug|x64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x64.Build.0 = Debug|x64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x86.ActiveCfg = Debug|Win32
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x86.Build.0 = Debug|Win32
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|arm64.ActiveCfg = Release|arm64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|arm64.Build.0 = Release|arm64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x64.ActiveCfg = Release|x64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x64.Build.0 = Release|x64
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x86.ActiveCfg = Release|Win32
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x86.Build.0 = Release|Win32
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|arm64.ActiveCfg = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|arm64.Build.0 = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|x64.Build.0 = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Debug|x86.Build.0 = Debug|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|arm64.ActiveCfg = Release|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|arm64.Build.0 = Release|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|x64.ActiveCfg = Release|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|x64.Build.0 = Release|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|x86.ActiveCfg = Release|Any CPU
+ {7B50ED23-B535-E658-9542-00885ED406FA}.Release|x86.Build.0 = Release|Any CPU
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|arm64.ActiveCfg = Debug|arm64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|arm64.Build.0 = Debug|arm64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|x64.ActiveCfg = Debug|x64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|x64.Build.0 = Debug|x64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|x86.ActiveCfg = Debug|x86
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Debug|x86.Build.0 = Debug|x86
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|arm64.ActiveCfg = Release|arm64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|arm64.Build.0 = Release|arm64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|x64.ActiveCfg = Release|x64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|x64.Build.0 = Release|x64
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|x86.ActiveCfg = Release|x86
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788}.Release|x86.Build.0 = Release|x86
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|arm64.ActiveCfg = Debug|arm64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|arm64.Build.0 = Debug|arm64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|x64.ActiveCfg = Debug|x64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|x64.Build.0 = Debug|x64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|x86.ActiveCfg = Debug|x86
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Debug|x86.Build.0 = Debug|x86
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|arm64.ActiveCfg = Release|arm64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|arm64.Build.0 = Release|arm64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|x64.ActiveCfg = Release|x64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|x64.Build.0 = Release|x64
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|x86.ActiveCfg = Release|x86
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A}.Release|x86.Build.0 = Release|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|arm64.ActiveCfg = Debug|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|arm64.Build.0 = Debug|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|arm64.Deploy.0 = Debug|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x64.ActiveCfg = Debug|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x64.Build.0 = Debug|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x64.Deploy.0 = Debug|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x86.ActiveCfg = Debug|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x86.Build.0 = Debug|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Debug|x86.Deploy.0 = Debug|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|arm64.ActiveCfg = Release|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|arm64.Build.0 = Release|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|arm64.Deploy.0 = Release|arm64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x64.ActiveCfg = Release|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x64.Build.0 = Release|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x64.Deploy.0 = Release|x64
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x86.ActiveCfg = Release|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x86.Build.0 = Release|x86
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1}.Release|x86.Deploy.0 = Release|x86
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|arm64.ActiveCfg = Debug|arm64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|arm64.Build.0 = Debug|arm64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|x64.ActiveCfg = Debug|x64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|x64.Build.0 = Debug|x64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|x86.ActiveCfg = Debug|x86
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Debug|x86.Build.0 = Debug|x86
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|arm64.ActiveCfg = Release|arm64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|arm64.Build.0 = Release|arm64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|x64.ActiveCfg = Release|x64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|x64.Build.0 = Release|x64
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|x86.ActiveCfg = Release|x86
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7}.Release|x86.Build.0 = Release|x86
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|arm64.ActiveCfg = Debug|arm64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|arm64.Build.0 = Debug|arm64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|x64.ActiveCfg = Debug|x64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|x64.Build.0 = Debug|x64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|x86.ActiveCfg = Debug|x86
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Debug|x86.Build.0 = Debug|x86
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|arm64.ActiveCfg = Release|arm64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|arm64.Build.0 = Release|arm64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|x64.ActiveCfg = Release|x64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|x64.Build.0 = Release|x64
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|x86.ActiveCfg = Release|x86
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34}.Release|x86.Build.0 = Release|x86
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|arm64.ActiveCfg = Debug|arm64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|arm64.Build.0 = Debug|arm64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|x64.ActiveCfg = Debug|x64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|x64.Build.0 = Debug|x64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|x86.ActiveCfg = Debug|x86
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Debug|x86.Build.0 = Debug|x86
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|arm64.ActiveCfg = Release|arm64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|arm64.Build.0 = Release|arm64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|x64.ActiveCfg = Release|x64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|x64.Build.0 = Release|x64
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|x86.ActiveCfg = Release|x86
+ {C1C83347-1524-3EBB-6B49-ECE025775668}.Release|x86.Build.0 = Release|x86
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Debug|arm64.ActiveCfg = Debug|arm64
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Debug|arm64.Build.0 = Debug|arm64
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Debug|x64.ActiveCfg = Debug|x64
@@ -146,72 +164,30 @@ Global
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Release|x64.Build.0 = Release|x64
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Release|x86.ActiveCfg = Release|Win32
{25FD5045-6D4C-4DD0-B3AC-613AB59CBB07}.Release|x86.Build.0 = Release|Win32
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|arm64.ActiveCfg = Debug|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|arm64.Build.0 = Debug|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|arm64.Deploy.0 = Debug|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x64.ActiveCfg = Debug|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x64.Build.0 = Debug|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x64.Deploy.0 = Debug|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x86.ActiveCfg = Debug|x86
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x86.Build.0 = Debug|x86
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Debug|x86.Deploy.0 = Debug|x86
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|arm64.ActiveCfg = Release|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|arm64.Build.0 = Release|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|arm64.Deploy.0 = Release|arm64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x64.ActiveCfg = Release|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x64.Build.0 = Release|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x64.Deploy.0 = Release|x64
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x86.ActiveCfg = Release|x86
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x86.Build.0 = Release|x86
- {6F431D82-A5FF-4833-B5E4-702E1E523126}.Release|x86.Deploy.0 = Release|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|arm64.ActiveCfg = Debug|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|arm64.Build.0 = Debug|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|arm64.Deploy.0 = Debug|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x64.ActiveCfg = Debug|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x64.Build.0 = Debug|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x64.Deploy.0 = Debug|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x86.ActiveCfg = Debug|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x86.Build.0 = Debug|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Debug|x86.Deploy.0 = Debug|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|arm64.ActiveCfg = Release|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|arm64.Build.0 = Release|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|arm64.Deploy.0 = Release|arm64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x64.ActiveCfg = Release|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x64.Build.0 = Release|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x64.Deploy.0 = Release|x64
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x86.ActiveCfg = Release|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x86.Build.0 = Release|x86
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999}.Release|x86.Deploy.0 = Release|x86
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|arm64.ActiveCfg = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|arm64.Build.0 = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|x64.ActiveCfg = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|x64.Build.0 = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Debug|x86.Build.0 = Debug|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|arm64.ActiveCfg = Release|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|arm64.Build.0 = Release|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|x64.ActiveCfg = Release|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|x64.Build.0 = Release|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|x86.ActiveCfg = Release|Any CPU
- {6FA07816-DE0A-4D49-84E8-38E953A33C87}.Release|x86.Build.0 = Release|Any CPU
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|arm64.ActiveCfg = Debug|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|arm64.Build.0 = Debug|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|arm64.Deploy.0 = Debug|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x64.ActiveCfg = Debug|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x64.Build.0 = Debug|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x64.Deploy.0 = Debug|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x86.ActiveCfg = Debug|x86
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x86.Build.0 = Debug|x86
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Debug|x86.Deploy.0 = Debug|x86
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|arm64.ActiveCfg = Release|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|arm64.Build.0 = Release|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|arm64.Deploy.0 = Release|arm64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x64.ActiveCfg = Release|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x64.Build.0 = Release|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x64.Deploy.0 = Release|x64
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x86.ActiveCfg = Release|x86
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x86.Build.0 = Release|x86
- {1EE996D6-885E-4403-A461-26C7A4E14D26}.Release|x86.Deploy.0 = Release|x86
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|arm64.ActiveCfg = Debug|arm64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|arm64.Build.0 = Debug|arm64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x64.ActiveCfg = Debug|x64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x64.Build.0 = Debug|x64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x86.ActiveCfg = Debug|Win32
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Debug|x86.Build.0 = Debug|Win32
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|arm64.ActiveCfg = Release|arm64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|arm64.Build.0 = Release|arm64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x64.ActiveCfg = Release|x64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x64.Build.0 = Release|x64
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x86.ActiveCfg = Release|Win32
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656}.Release|x86.Build.0 = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|arm64.ActiveCfg = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|arm64.Build.0 = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x64.ActiveCfg = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x64.Build.0 = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x86.ActiveCfg = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x86.Build.0 = Debug|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|arm64.ActiveCfg = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|arm64.Build.0 = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x64.ActiveCfg = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x64.Build.0 = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x86.ActiveCfg = Release|Win32
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x86.Build.0 = Release|Win32
{EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}.Debug|arm64.ActiveCfg = Debug|arm64
{EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}.Debug|arm64.Build.0 = Debug|arm64
{EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6}.Debug|x64.ActiveCfg = Debug|x64
@@ -229,84 +205,114 @@ Global
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Debug|x64.ActiveCfg = Debug|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Debug|x64.Build.0 = Debug|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Debug|x86.ActiveCfg = Debug|Win32
+ {7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Debug|x86.Build.0 = Debug|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|arm64.ActiveCfg = Release|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|arm64.Build.0 = Release|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|x64.ActiveCfg = Release|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|x64.Build.0 = Release|Win32
{7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|x86.ActiveCfg = Release|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|arm64.ActiveCfg = Debug|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|arm64.Build.0 = Debug|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x64.ActiveCfg = Debug|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x64.Build.0 = Debug|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Debug|x86.ActiveCfg = Debug|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|arm64.ActiveCfg = Release|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|arm64.Build.0 = Release|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x64.ActiveCfg = Release|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x64.Build.0 = Release|Win32
- {B3FE3F3B-CECC-4918-B72B-5488C3774125}.Release|x86.ActiveCfg = Release|Win32
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|arm64.ActiveCfg = Debug|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|arm64.Build.0 = Debug|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|arm64.Deploy.0 = Debug|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x64.ActiveCfg = Debug|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x64.Build.0 = Debug|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x64.Deploy.0 = Debug|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x86.ActiveCfg = Debug|x86
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x86.Build.0 = Debug|x86
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Debug|x86.Deploy.0 = Debug|x86
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|arm64.ActiveCfg = Release|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|arm64.Build.0 = Release|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|arm64.Deploy.0 = Release|arm64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x64.ActiveCfg = Release|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x64.Build.0 = Release|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x64.Deploy.0 = Release|x64
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x86.ActiveCfg = Release|x86
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x86.Build.0 = Release|x86
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B}.Release|x86.Deploy.0 = Release|x86
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Debug|arm64.ActiveCfg = Debug|arm64
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Debug|x64.ActiveCfg = Debug|x64
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Debug|x64.Build.0 = Debug|x64
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Debug|x86.ActiveCfg = Debug|x86
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Release|arm64.ActiveCfg = Release|arm64
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Release|x64.ActiveCfg = Release|x64
- {83FF8729-CC76-43E2-976F-47F0A187FC7E}.Release|x86.ActiveCfg = Release|x86
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|arm64.ActiveCfg = Debug|arm64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|arm64.Build.0 = Debug|arm64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|x64.ActiveCfg = Debug|x64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|x64.Build.0 = Debug|x64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|x86.ActiveCfg = Debug|x86
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Debug|x86.Build.0 = Debug|x86
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|arm64.ActiveCfg = Release|arm64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|arm64.Build.0 = Release|arm64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|x64.ActiveCfg = Release|x64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|x64.Build.0 = Release|x64
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|x86.ActiveCfg = Release|x86
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A}.Release|x86.Build.0 = Release|x86
+ {7756A1A4-17B5-4E6B-9B12-F19AA868A225}.Release|x86.Build.0 = Release|Win32
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|arm64.ActiveCfg = Debug|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|arm64.Build.0 = Debug|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|arm64.Deploy.0 = Debug|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x64.ActiveCfg = Debug|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x64.Build.0 = Debug|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x64.Deploy.0 = Debug|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x86.ActiveCfg = Debug|x86
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x86.Build.0 = Debug|x86
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Debug|x86.Deploy.0 = Debug|x86
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|arm64.ActiveCfg = Release|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|arm64.Build.0 = Release|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|arm64.Deploy.0 = Release|arm64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x64.ActiveCfg = Release|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x64.Build.0 = Release|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x64.Deploy.0 = Release|x64
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x86.ActiveCfg = Release|x86
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x86.Build.0 = Release|x86
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC}.Release|x86.Deploy.0 = Release|x86
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|arm64.ActiveCfg = Debug|arm64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|arm64.Build.0 = Debug|arm64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|x64.ActiveCfg = Debug|x64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|x64.Build.0 = Debug|x64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|x86.ActiveCfg = Debug|x86
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Debug|x86.Build.0 = Debug|x86
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|arm64.ActiveCfg = Release|arm64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|arm64.Build.0 = Release|arm64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|x64.ActiveCfg = Release|x64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|x64.Build.0 = Release|x64
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|x86.ActiveCfg = Release|x86
+ {C425951C-86B6-E4C0-724E-047E9A2C8599}.Release|x86.Build.0 = Release|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|arm64.ActiveCfg = Debug|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|arm64.Build.0 = Debug|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|arm64.Deploy.0 = Debug|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x64.ActiveCfg = Debug|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x64.Build.0 = Debug|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x64.Deploy.0 = Debug|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x86.ActiveCfg = Debug|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x86.Build.0 = Debug|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Debug|x86.Deploy.0 = Debug|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|arm64.ActiveCfg = Release|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|arm64.Build.0 = Release|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|arm64.Deploy.0 = Release|arm64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x64.ActiveCfg = Release|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x64.Build.0 = Release|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x64.Deploy.0 = Release|x64
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x86.ActiveCfg = Release|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x86.Build.0 = Release|x86
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B}.Release|x86.Deploy.0 = Release|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|arm64.ActiveCfg = Debug|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|arm64.Build.0 = Debug|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|arm64.Deploy.0 = Debug|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x64.ActiveCfg = Debug|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x64.Build.0 = Debug|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x64.Deploy.0 = Debug|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x86.ActiveCfg = Debug|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x86.Build.0 = Debug|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Debug|x86.Deploy.0 = Debug|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|arm64.ActiveCfg = Release|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|arm64.Build.0 = Release|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|arm64.Deploy.0 = Release|arm64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x64.ActiveCfg = Release|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x64.Build.0 = Release|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x64.Deploy.0 = Release|x64
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x86.ActiveCfg = Release|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x86.Build.0 = Release|x86
+ {85D62465-0545-08C0-6135-FB568D81A323}.Release|x86.Deploy.0 = Release|x86
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|arm64.ActiveCfg = Debug|arm64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|arm64.Build.0 = Debug|arm64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|x64.ActiveCfg = Debug|x64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|x64.Build.0 = Debug|x64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|x86.ActiveCfg = Debug|x86
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Debug|x86.Build.0 = Debug|x86
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|arm64.ActiveCfg = Release|arm64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|arm64.Build.0 = Release|arm64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|x64.ActiveCfg = Release|x64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|x64.Build.0 = Release|x64
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|x86.ActiveCfg = Release|x86
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {A188C26B-E731-4E0B-9D17-D21CEBD9B43F} = {A74DCE98-A744-4D71-A2B1-7EE4FED0936B}
- {9F36C2AD-005D-4EA5-A1F1-6BC42773FC85} = {A74DCE98-A744-4D71-A2B1-7EE4FED0936B}
- {94F77692-D47C-48D8-A1A7-645192EF38A4} = {9F36C2AD-005D-4EA5-A1F1-6BC42773FC85}
- {B8051E11-5BF2-49F7-A7C8-E3820DBB8209} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {53371D77-7AC1-4975-9A2A-5E0EB0B37CE3} = {9F36C2AD-005D-4EA5-A1F1-6BC42773FC85}
- {BB1DA0B0-4E5B-4336-961E-DF389482C094} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {4ED01D20-8529-4DEF-8C1B-4E31031AE7E0} = {481DE2EA-E6CE-4A9C-A220-3B543B95AAA1}
- {A2FF3F3B-8EBC-4108-B99D-1476B7876656} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {6F431D82-A5FF-4833-B5E4-702E1E523126} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {8F60FD8E-1921-47D6-97B0-D26D7B3A4999} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {6FA07816-DE0A-4D49-84E8-38E953A33C87} = {9F36C2AD-005D-4EA5-A1F1-6BC42773FC85}
- {1EE996D6-885E-4403-A461-26C7A4E14D26} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {7756A1A4-17B5-4E6B-9B12-F19AA868A225} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {B3FE3F3B-CECC-4918-B72B-5488C3774125} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {6F5B1C76-6FA1-49C0-9AF5-672BEDF6900B} = {481DE2EA-E6CE-4A9C-A220-3B543B95AAA1}
- {83FF8729-CC76-43E2-976F-47F0A187FC7E} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- {4803E2CB-3E27-447D-94FC-45B5F96E4F7A} = {A188C26B-E731-4E0B-9D17-D21CEBD9B43F}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {0E62043C-A7A1-4982-9EC9-4CDB2939B776}
+ {8D626EA8-CB54-BC41-363A-217881BEBA6E} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {7B50ED23-B535-E658-9542-00885ED406FA} = {8D626EA8-CB54-BC41-363A-217881BEBA6E}
+ {0CD123D7-CAE3-0F58-73C0-8BF39753B788} = {8D626EA8-CB54-BC41-363A-217881BEBA6E}
+ {6C01E445-3C11-C76F-CE47-0B9A775ACF0A} = {8D626EA8-CB54-BC41-363A-217881BEBA6E}
+ {82099983-647E-F067-E69A-CD800643A918} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {66AF8DE9-79A0-E1FC-5B6B-E4B41FFDE6A1} = {82099983-647E-F067-E69A-CD800643A918}
+ {F8B5749F-C6EA-8FE3-B03A-ACE02A8076A7} = {82099983-647E-F067-E69A-CD800643A918}
+ {98A9E6D7-7C0E-1E78-8CE6-6E42C8A70B34} = {82099983-647E-F067-E69A-CD800643A918}
+ {C1C83347-1524-3EBB-6B49-ECE025775668} = {82099983-647E-F067-E69A-CD800643A918}
+ {25FD5045-6D4C-4DD0-B3AC-613AB59CBB07} = {82099983-647E-F067-E69A-CD800643A918}
+ {A2FF3F3B-8EBC-4108-B99D-1476B7876656} = {82099983-647E-F067-E69A-CD800643A918}
+ {B3FE3F3B-CECC-4918-B72B-5488C3774125} = {82099983-647E-F067-E69A-CD800643A918}
+ {EBFA367F-CBDB-4CD0-B838-D6B95F61D1F6} = {82099983-647E-F067-E69A-CD800643A918}
+ {7756A1A4-17B5-4E6B-9B12-F19AA868A225} = {82099983-647E-F067-E69A-CD800643A918}
+ {A9FC40D5-7AA8-6EB5-C5A5-F5075045DBCC} = {82099983-647E-F067-E69A-CD800643A918}
+ {C425951C-86B6-E4C0-724E-047E9A2C8599} = {82099983-647E-F067-E69A-CD800643A918}
+ {E6BD44A2-F200-6AC3-5A80-68727B1BE71B} = {82099983-647E-F067-E69A-CD800643A918}
+ {85D62465-0545-08C0-6135-FB568D81A323} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
+ {9A20CF5B-549E-FB0A-4791-91CA4FFCCFFF} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
EndGlobalSection
EndGlobal
diff --git a/Files.slnx b/Files.slnx
new file mode 100644
index 000000000000..280325f271c2
--- /dev/null
+++ b/Files.slnx
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/global.json b/global.json
index 62a1920fd79d..22ededbf99dc 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,6 @@
{
- "sdk": {
- "version": "8.0.303"
- }
+ "sdk": {
+ "version": "9.0.102",
+ "rollForward": "latestMajor"
+ }
}
diff --git a/nuget.config b/nuget.config
index 2d6f8e9827fe..9bff03b5edc1 100644
--- a/nuget.config
+++ b/nuget.config
@@ -1,6 +1,20 @@
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Files.App (Package)/Files.Package.wapproj b/src/Files.App (Package)/Files.Package.wapproj
index b9ea87f552aa..9fe1a0b05133 100644
--- a/src/Files.App (Package)/Files.Package.wapproj
+++ b/src/Files.App (Package)/Files.Package.wapproj
@@ -1,11 +1,10 @@
-
-
+
8f60fd8e-1921-47d6-97b0-d26d7b3a4999
10.0.22621.0
10.0.19041.0
- net8.0-windows$(TargetPlatformVersion);$(AssetTargetFallback)
+ net9.0-windows$(TargetPlatformVersion);$(AssetTargetFallback)
en-US
False
False
@@ -28,18 +27,6 @@
Debug
x86
-
- Preview
- ARM64
-
-
- Preview
- x64
-
-
- Preview
- x86
-
Release
x86
@@ -60,30 +47,6 @@
Release
ARM64
-
- Stable
- ARM64
-
-
- Stable
- x64
-
-
- Stable
- x86
-
-
- Store
- ARM64
-
-
- Store
- x64
-
-
- Store
- x86
-
$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
@@ -107,8 +70,8 @@
-
-
+
+
diff --git a/src/Files.App.BackgroundTasks/Files.App.BackgroundTasks.csproj b/src/Files.App.BackgroundTasks/Files.App.BackgroundTasks.csproj
index f600ec7346ab..e31ac656a7a1 100644
--- a/src/Files.App.BackgroundTasks/Files.App.BackgroundTasks.csproj
+++ b/src/Files.App.BackgroundTasks/Files.App.BackgroundTasks.csproj
@@ -1,32 +1,25 @@
-
+
- net8.0-windows10.0.22621.0
+ $(TargetFrameworkVersion)-windows$(TargetWindowsVersion)
en-US
- 10.0.19041.0
+ $(MinimalWindowsVersion)
true
Debug;Release
x86;x64;ARM64
win-x86;win-x64;win-arm64
+ true
true
- 10.0.22621.0
+ $(TargetWindowsVersion)
$(MSBuildProjectDirectory)\bin\$(Platform)\$(Configuration)
-
- TRACE;DEBUG;NETFX_CORE
-
-
- TRACE;RELEASE;NETFX_CORE
- true
-
-
-
+
diff --git a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs
new file mode 100644
index 000000000000..297e43a3cb73
--- /dev/null
+++ b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs
@@ -0,0 +1,164 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Input;
+
+namespace Files.App.Controls
+{
+ ///
+ /// The AdaptiveGridView control allows to present information within a Grid View perfectly adjusting the
+ /// total display available space. It reacts to changes in the layout as well as the content so it can adapt
+ /// to different form factors automatically.
+ ///
+ ///
+ /// The number and the width of items are calculated based on the
+ /// screen resolution in order to fully leverage the available screen space. The property ItemsHeight define
+ /// the items fixed height and the property DesiredWidth sets the minimum width for the elements to add a
+ /// new column.
+ ///
+ public partial class AdaptiveGridView
+ {
+ ///
+ /// Identifies the dependency property.
+ ///
+ public static readonly DependencyProperty ItemClickCommandProperty =
+ DependencyProperty.Register(nameof(ItemClickCommand), typeof(ICommand), typeof(AdaptiveGridView), new PropertyMetadata(null));
+
+ ///
+ /// Identifies the dependency property.
+ ///
+ public static readonly DependencyProperty ItemHeightProperty =
+ DependencyProperty.Register(nameof(ItemHeight), typeof(double), typeof(AdaptiveGridView), new PropertyMetadata(double.NaN));
+
+ ///
+ /// Identifies the dependency property.
+ ///
+ public static readonly DependencyProperty OneRowModeEnabledProperty =
+ DependencyProperty.Register(nameof(OneRowModeEnabled), typeof(bool), typeof(AdaptiveGridView), new PropertyMetadata(false, (o, e) => { OnOneRowModeEnabledChanged(o, e.NewValue); }));
+
+ ///
+ /// Identifies the dependency property.
+ ///
+ private static readonly DependencyProperty ItemWidthProperty =
+ DependencyProperty.Register(nameof(ItemWidth), typeof(double), typeof(AdaptiveGridView), new PropertyMetadata(double.NaN));
+
+ ///
+ /// Identifies the dependency property.
+ ///
+ public static readonly DependencyProperty DesiredWidthProperty =
+ DependencyProperty.Register(nameof(DesiredWidth), typeof(double), typeof(AdaptiveGridView), new PropertyMetadata(double.NaN, DesiredWidthChanged));
+
+ ///
+ /// Identifies the dependency property.
+ ///
+ public static readonly DependencyProperty StretchContentForSingleRowProperty =
+ DependencyProperty.Register(nameof(StretchContentForSingleRow), typeof(bool), typeof(AdaptiveGridView), new PropertyMetadata(true, OnStretchContentForSingleRowPropertyChanged));
+
+ private static void OnOneRowModeEnabledChanged(DependencyObject d, object newValue)
+ {
+ var self = d as AdaptiveGridView;
+ self.DetermineOneRowMode();
+ }
+
+ private static void DesiredWidthChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var self = d as AdaptiveGridView;
+ self.RecalculateLayout(self.ActualWidth);
+ }
+
+ private static void OnStretchContentForSingleRowPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var self = d as AdaptiveGridView;
+ self.RecalculateLayout(self.ActualWidth);
+ }
+
+ ///
+ /// Gets or sets the desired width of each item
+ ///
+ /// The width of the desired.
+ public double DesiredWidth
+ {
+ get { return (double)GetValue(DesiredWidthProperty); }
+ set { SetValue(DesiredWidthProperty, value); }
+ }
+
+ ///
+ /// Gets or sets a value indicating whether the control should stretch the content to fill at least one row.
+ ///
+ ///
+ /// If set to true (default) and there is only one row of items, the items will be stretched to fill the complete row.
+ /// If set to false, items will have their normal size, which means a gap can exist at the end of the row.
+ ///
+ /// A value indicating whether the control should stretch the content to fill at least one row.
+ public bool StretchContentForSingleRow
+ {
+ get { return (bool)GetValue(StretchContentForSingleRowProperty); }
+ set { SetValue(StretchContentForSingleRowProperty, value); }
+ }
+
+ ///
+ /// Gets or sets the command to execute when an item is clicked and the IsItemClickEnabled property is true.
+ ///
+ /// The item click command.
+ public ICommand ItemClickCommand
+ {
+ get { return (ICommand)GetValue(ItemClickCommandProperty); }
+ set { SetValue(ItemClickCommandProperty, value); }
+ }
+
+ ///
+ /// Gets or sets the height of each item in the grid.
+ ///
+ /// The height of the item.
+ public double ItemHeight
+ {
+ get { return (double)GetValue(ItemHeightProperty); }
+ set { SetValue(ItemHeightProperty, value); }
+ }
+
+ ///
+ /// Gets or sets a value indicating whether only one row should be displayed.
+ ///
+ /// true if only one row is displayed; otherwise, false.
+ public bool OneRowModeEnabled
+ {
+ get { return (bool)GetValue(OneRowModeEnabledProperty); }
+ set { SetValue(OneRowModeEnabledProperty, value); }
+ }
+
+ ///
+ /// Gets the template that defines the panel that controls the layout of items.
+ ///
+ ///
+ /// This property overrides the base ItemsPanel to prevent changing it.
+ ///
+ ///
+ /// An ItemsPanelTemplate that defines the panel to use for the layout of the items.
+ /// The default value for the ItemsControl is an ItemsPanelTemplate that specifies
+ /// a StackPanel.
+ ///
+ public new ItemsPanelTemplate ItemsPanel => base.ItemsPanel;
+
+ private double ItemWidth
+ {
+ get { return (double)GetValue(ItemWidthProperty); }
+ set { SetValue(ItemWidthProperty, value); }
+ }
+
+ private static int CalculateColumns(double containerWidth, double itemWidth)
+ {
+ var columns = (int)Math.Round(containerWidth / itemWidth);
+ if (columns == 0)
+ {
+ columns = 1;
+ }
+
+ return columns;
+ }
+ }
+}
diff --git a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs
new file mode 100644
index 000000000000..d769f57bde2d
--- /dev/null
+++ b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs
@@ -0,0 +1,269 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.UI.Xaml.Data;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.Foundation.Collections;
+
+namespace Files.App.Controls
+{
+ ///
+ /// The AdaptiveGridView control allows to present information within a Grid View perfectly adjusting the
+ /// total display available space. It reacts to changes in the layout as well as the content so it can adapt
+ /// to different form factors automatically.
+ ///
+ ///
+ /// The number and the width of items are calculated based on the
+ /// screen resolution in order to fully leverage the available screen space. The property ItemsHeight define
+ /// the items fixed height and the property DesiredWidth sets the minimum width for the elements to add a
+ /// new column.
+ public partial class AdaptiveGridView : GridView
+ {
+ private bool _isLoaded;
+ private ScrollMode _savedVerticalScrollMode;
+ private ScrollMode _savedHorizontalScrollMode;
+ private ScrollBarVisibility _savedVerticalScrollBarVisibility;
+ private ScrollBarVisibility _savedHorizontalScrollBarVisibility;
+ private Orientation _savedOrientation;
+ private bool _needToRestoreScrollStates;
+ private bool _needContainerMarginForLayout;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public AdaptiveGridView()
+ {
+ IsTabStop = false;
+ SizeChanged += OnSizeChanged;
+ ItemClick += OnItemClick;
+ Items.VectorChanged += ItemsOnVectorChanged;
+ Loaded += OnLoaded;
+ Unloaded += OnUnloaded;
+
+ // Prevent issues with higher DPIs and underlying panel. #1803
+ UseLayoutRounding = false;
+ }
+
+ ///
+ /// Prepares the specified element to display the specified item.
+ ///
+ /// The element that's used to display the specified item.
+ /// The item to display.
+ protected override void PrepareContainerForItemOverride(DependencyObject obj, object item)
+ {
+ base.PrepareContainerForItemOverride(obj, item);
+ if (obj is FrameworkElement element)
+ {
+ var heightBinding = new Binding()
+ {
+ Source = this,
+ Path = new PropertyPath("ItemHeight"),
+ Mode = BindingMode.TwoWay
+ };
+
+ var widthBinding = new Binding()
+ {
+ Source = this,
+ Path = new PropertyPath("ItemWidth"),
+ Mode = BindingMode.TwoWay
+ };
+
+ element.SetBinding(HeightProperty, heightBinding);
+ element.SetBinding(WidthProperty, widthBinding);
+ }
+
+ if (obj is ContentControl contentControl)
+ {
+ contentControl.HorizontalContentAlignment = HorizontalAlignment.Stretch;
+ contentControl.VerticalContentAlignment = VerticalAlignment.Stretch;
+ }
+
+ if (_needContainerMarginForLayout)
+ {
+ _needContainerMarginForLayout = false;
+ RecalculateLayout(ActualWidth);
+ }
+ }
+
+ ///
+ /// Calculates the width of the grid items.
+ ///
+ /// The width of the container control.
+ /// The calculated item width.
+ protected virtual double CalculateItemWidth(double containerWidth)
+ {
+ if (double.IsNaN(DesiredWidth))
+ {
+ return DesiredWidth;
+ }
+
+ var columns = CalculateColumns(containerWidth, DesiredWidth);
+
+ // If there's less items than there's columns, reduce the column count (if requested);
+ if (Items != null && Items.Count > 0 && Items.Count < columns && StretchContentForSingleRow)
+ {
+ columns = Items.Count;
+ }
+
+ // subtract the margin from the width so we place the correct width for placement
+ var fallbackThickness = default(Thickness);
+ var itemMargin = AdaptiveHeightValueConverter.GetItemMargin(this, fallbackThickness);
+ if (itemMargin == fallbackThickness)
+ {
+ // No style explicitly defined, or no items or no container for the items
+ // We need to get an actual margin for proper layout
+ _needContainerMarginForLayout = true;
+ }
+
+ return (containerWidth / columns) - itemMargin.Left - itemMargin.Right;
+ }
+
+ ///
+ /// Invoked whenever application code or internal processes (such as a rebuilding layout pass) call
+ /// ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays
+ /// in your app. Override this method to influence the default post-template logic of a class.
+ ///
+ protected override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+
+ OnOneRowModeEnabledChanged(this, OneRowModeEnabled);
+ }
+
+ private void ItemsOnVectorChanged(IObservableVector