Skip to content

Commit 1b60c7d

Browse files
Merge pull request #53 from Geta/feature/cms-13-upgrade
Feature/cms 13 upgrade
2 parents aaebb80 + 54cbcef commit 1b60c7d

1,559 files changed

Lines changed: 2079 additions & 231235 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,30 @@ on:
55
- master
66
pull_request:
77
types: [opened, synchronize, reopened]
8+
concurrency:
9+
group: "build-${{ github.ref_name }}"
10+
cancel-in-progress: false
11+
812
jobs:
913
build:
1014
name: Build
1115
runs-on: windows-latest
1216
steps:
13-
- name: Set up JDK 17
14-
uses: actions/setup-java@v3
15-
with:
16-
distribution: 'microsoft'
17-
java-version: '17'
18-
- uses: actions/checkout@v2
17+
- name: Checkout repository with submodules
18+
uses: actions/checkout@v4
1919
with:
2020
fetch-depth: 0
21-
- name: Cache SonarCloud packages
22-
uses: actions/cache@v1
23-
with:
24-
path: ~\sonar\cache
25-
key: ${{ runner.os }}-sonar
26-
restore-keys: ${{ runner.os }}-sonar
27-
- name: Cache SonarCloud scanner
28-
id: cache-sonar-scanner
29-
uses: actions/cache@v1
21+
submodules: recursive
22+
- name: Cache NuGet packages
23+
uses: actions/cache@v4
3024
with:
31-
path: .\.sonar\scanner
32-
key: ${{ runner.os }}-sonar-scanner
33-
restore-keys: ${{ runner.os }}-sonar-scanner
34-
- name: Install SonarCloud scanner
35-
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
36-
shell: powershell
37-
run: |
38-
New-Item -Path .\.sonar\scanner -ItemType Directory
39-
dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner
40-
- name: Build and analyze
41-
env:
42-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43-
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
44-
shell: powershell
45-
run: |
46-
.\.sonar\scanner\dotnet-sonarscanner begin /k:"Geta_${{ github.event.repository.name }}" /o:"geta" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.opencover.reportsPaths=**/**/coverage.opencover.xml
47-
dotnet build
48-
dotnet test --filter Category!=Integration /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=coverage
49-
.\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"
25+
path: ~/.nuget/packages
26+
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
27+
restore-keys: |
28+
${{ runner.os }}-nuget-
29+
- name: Restore dependencies
30+
run: dotnet restore
31+
- name: Build
32+
run: dotnet build --configuration Release --no-restore
33+
- name: Test
34+
run: dotnet test --configuration Release --no-build --filter Category!=Integration

.github/workflows/release.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ jobs:
99
runs-on: windows-latest
1010
steps:
1111
- name: Checkout
12-
uses: actions/checkout@v2
12+
uses: actions/checkout@v4
13+
with:
14+
fetch-depth: 0
15+
submodules: recursive
1316
- name: Verify commit exists in origin/master
1417
run: |
1518
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
@@ -29,7 +32,6 @@ jobs:
2932
- name: Push
3033
run: |
3134
dotnet nuget push Geta.Optimizely.Categories.${{env.VERSION}}.nupkg --source https://nuget.pkg.github.com/Geta/index.json --api-key ${{env.GITHUB_TOKEN}}
32-
dotnet nuget push Geta.Optimizely.Categories.Find.${{env.VERSION}}.nupkg --source https://nuget.pkg.github.com/Geta/index.json --api-key ${{env.GITHUB_TOKEN}}
3335
env:
3436
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3537
- name: Create GitHub Release with Auto-Generated Notes

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,4 +267,5 @@ __pycache__/
267267
# Cake - Uncomment if you are using it
268268
# tools/
269269

270-
App_Data/
270+
App_Data/
271+
/docs/superpowers

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "sub/geta-foundation-core"]
2+
path = sub/geta-foundation-core
3+
url = https://github.com/Geta/geta-foundation-core
4+
branch = upgrade/cms-13-dot-1

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
## [2.0.0] - 2026-06-04
6+
7+
### Changed
8+
9+
- **Breaking:** Upgraded to .NET 10 and Optimizely CMS 13 (`EPiServer.CMS.* 13.1.0`). Earlier versions target .NET 6 / Optimizely CMS 12; consuming solutions must retarget and recompile.
10+
- Reimplemented the category property editor as native ES6 JavaScript modules, replacing the legacy Dojo/Dijit widgets, as required by the Optimizely CMS 13 editing UI.
11+
12+
### Removed
13+
14+
- **Breaking:** Dropped the `Geta.Optimizely.Categories.Find` search-provider package; it is no longer part of this release.
15+
- **Breaking:** `[AllowedTypes(typeof(CategoryData))]` on a `ContentReference` / `IList<ContentReference>` property no longer renders the category picker. On CMS 13 the native content reference picker does not resolve the base `CategoryData` type to its concrete category types, so the picker comes up empty. Use the `[Categories]` attribute, `[UIHint(CategoryUIHint.Categories)]`, or `[UIHint(CategoryUIHint.Category)]` instead. This is a source-only change — stored category references are unaffected. See "Upgrading to Optimizely CMS 13" in the README.
16+
- Removed the legacy Dojo category selector widgets (`module/ClientResources/Scripts/widget/*`).
17+
18+
## [1.1.3] - 2025-01-31
19+
20+
- Removed an unused constructor parameter from `DefaultCategoryContentLoader`.
21+
22+
## [1.1.2] - 2025-01-23
23+
24+
- Category hierarchy handling and routing improvements.
25+
26+
## [1.1.1] - 2023-12-27
27+
28+
- Removed version constraints on the `Geta.Optimizely.Categories.Find` package.
29+
30+
## [1.1.0] - 2023-12-27
31+
32+
- Build/release pipeline improvements.
33+
34+
## [1.0.0] - 2022-05-27
35+
36+
- First stable release for Optimizely CMS 12 / .NET 6.
37+
38+
## [0.0.1] - 2022-05-18
39+
40+
- Initial release.

Geta.Optimizely.Categories.sln

Lines changed: 121 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,121 @@
1-
2-
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 17
4-
VisualStudioVersion = 17.2.32516.85
5-
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories", "src\Geta.Optimizely.Categories\Geta.Optimizely.Categories.csproj", "{B98D1645-CBE3-4466-BCDA-09B0E4044449}"
7-
EndProject
8-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandbox", "sandbox", "{3139E63B-C823-4FBE-934D-F1B7CAB3D34C}"
9-
EndProject
10-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation", "sandbox\Foundation\src\Foundation\Foundation.csproj", "{FD55722F-036D-45D4-84B4-3B97317DF2E7}"
11-
EndProject
12-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories.Find", "src\Geta.Optimizely.Categories.Find\Geta.Optimizely.Categories.Find.csproj", "{1B0B8069-16AE-4156-8D96-5E65B3022CC5}"
13-
EndProject
14-
Global
15-
GlobalSection(SolutionConfigurationPlatforms) = preSolution
16-
Debug|Any CPU = Debug|Any CPU
17-
Release|Any CPU = Release|Any CPU
18-
EndGlobalSection
19-
GlobalSection(ProjectConfigurationPlatforms) = postSolution
20-
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21-
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.Build.0 = Debug|Any CPU
22-
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.ActiveCfg = Release|Any CPU
23-
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.Build.0 = Release|Any CPU
24-
{FD55722F-036D-45D4-84B4-3B97317DF2E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25-
{FD55722F-036D-45D4-84B4-3B97317DF2E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
26-
{FD55722F-036D-45D4-84B4-3B97317DF2E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
27-
{FD55722F-036D-45D4-84B4-3B97317DF2E7}.Release|Any CPU.Build.0 = Release|Any CPU
28-
{1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
29-
{1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
30-
{1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
31-
{1B0B8069-16AE-4156-8D96-5E65B3022CC5}.Release|Any CPU.Build.0 = Release|Any CPU
32-
EndGlobalSection
33-
GlobalSection(SolutionProperties) = preSolution
34-
HideSolutionNode = FALSE
35-
EndGlobalSection
36-
GlobalSection(NestedProjects) = preSolution
37-
{FD55722F-036D-45D4-84B4-3B97317DF2E7} = {3139E63B-C823-4FBE-934D-F1B7CAB3D34C}
38-
EndGlobalSection
39-
GlobalSection(ExtensibilityGlobals) = postSolution
40-
SolutionGuid = {EC4AAEB0-EC5C-4B9D-AEC3-D2BCB8D89226}
41-
EndGlobalSection
42-
EndGlobal
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.2.32516.85
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories", "src\Geta.Optimizely.Categories\Geta.Optimizely.Categories.csproj", "{B98D1645-CBE3-4466-BCDA-09B0E4044449}"
7+
EndProject
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories.Web", "src\Geta.Optimizely.Categories.Web\Geta.Optimizely.Categories.Web.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}"
9+
EndProject
10+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "geta-foundation-core", "geta-foundation-core", "{637F7C28-82DB-4DFA-ADB4-B6061538FC11}"
11+
EndProject
12+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation", "sub\geta-foundation-core\src\Foundation\Foundation.csproj", "{482B37E4-8CBF-426A-865C-8AB7E4E145DA}"
13+
EndProject
14+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation.AppHost", "sub\geta-foundation-core\src\Foundation.AppHost\Foundation.AppHost.csproj", "{21873564-1FF0-41B3-B9EE-3D1EAF274763}"
15+
EndProject
16+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Foundation.AppHost.ServiceDefaults", "sub\geta-foundation-core\src\Foundation.AppHost.ServiceDefaults\Foundation.AppHost.ServiceDefaults.csproj", "{FF8CF906-96C1-4205-8E53-CFE933F054A2}"
17+
EndProject
18+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
19+
EndProject
20+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Geta.Optimizely.Categories.Tests", "tests\Geta.Optimizely.Categories.Tests\Geta.Optimizely.Categories.Tests.csproj", "{08CA7750-BA09-4987-BC55-2D6F7638C381}"
21+
EndProject
22+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
23+
EndProject
24+
Global
25+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
26+
Debug|Any CPU = Debug|Any CPU
27+
Debug|x64 = Debug|x64
28+
Debug|x86 = Debug|x86
29+
Release|Any CPU = Release|Any CPU
30+
Release|x64 = Release|x64
31+
Release|x86 = Release|x86
32+
EndGlobalSection
33+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
34+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|Any CPU.Build.0 = Debug|Any CPU
36+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x64.ActiveCfg = Debug|Any CPU
37+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x64.Build.0 = Debug|Any CPU
38+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x86.ActiveCfg = Debug|Any CPU
39+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Debug|x86.Build.0 = Debug|Any CPU
40+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.ActiveCfg = Release|Any CPU
41+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|Any CPU.Build.0 = Release|Any CPU
42+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x64.ActiveCfg = Release|Any CPU
43+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x64.Build.0 = Release|Any CPU
44+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x86.ActiveCfg = Release|Any CPU
45+
{B98D1645-CBE3-4466-BCDA-09B0E4044449}.Release|x86.Build.0 = Release|Any CPU
46+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU
48+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU
49+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|Any CPU
50+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|Any CPU
51+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|Any CPU
52+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU
53+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU
54+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|Any CPU
55+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|Any CPU
56+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|Any CPU
57+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|Any CPU
58+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
60+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x64.ActiveCfg = Debug|Any CPU
61+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x64.Build.0 = Debug|Any CPU
62+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x86.ActiveCfg = Debug|Any CPU
63+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Debug|x86.Build.0 = Debug|Any CPU
64+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
65+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|Any CPU.Build.0 = Release|Any CPU
66+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x64.ActiveCfg = Release|Any CPU
67+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x64.Build.0 = Release|Any CPU
68+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x86.ActiveCfg = Release|Any CPU
69+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA}.Release|x86.Build.0 = Release|Any CPU
70+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
71+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|Any CPU.Build.0 = Debug|Any CPU
72+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x64.ActiveCfg = Debug|Any CPU
73+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x64.Build.0 = Debug|Any CPU
74+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x86.ActiveCfg = Debug|Any CPU
75+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Debug|x86.Build.0 = Debug|Any CPU
76+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|Any CPU.ActiveCfg = Release|Any CPU
77+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|Any CPU.Build.0 = Release|Any CPU
78+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x64.ActiveCfg = Release|Any CPU
79+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x64.Build.0 = Release|Any CPU
80+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x86.ActiveCfg = Release|Any CPU
81+
{21873564-1FF0-41B3-B9EE-3D1EAF274763}.Release|x86.Build.0 = Release|Any CPU
82+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
83+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
84+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x64.ActiveCfg = Debug|Any CPU
85+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x64.Build.0 = Debug|Any CPU
86+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x86.ActiveCfg = Debug|Any CPU
87+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Debug|x86.Build.0 = Debug|Any CPU
88+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
89+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|Any CPU.Build.0 = Release|Any CPU
90+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x64.ActiveCfg = Release|Any CPU
91+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x64.Build.0 = Release|Any CPU
92+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x86.ActiveCfg = Release|Any CPU
93+
{FF8CF906-96C1-4205-8E53-CFE933F054A2}.Release|x86.Build.0 = Release|Any CPU
94+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
95+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|Any CPU.Build.0 = Debug|Any CPU
96+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x64.ActiveCfg = Debug|Any CPU
97+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x64.Build.0 = Debug|Any CPU
98+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x86.ActiveCfg = Debug|Any CPU
99+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Debug|x86.Build.0 = Debug|Any CPU
100+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|Any CPU.ActiveCfg = Release|Any CPU
101+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|Any CPU.Build.0 = Release|Any CPU
102+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x64.ActiveCfg = Release|Any CPU
103+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x64.Build.0 = Release|Any CPU
104+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x86.ActiveCfg = Release|Any CPU
105+
{08CA7750-BA09-4987-BC55-2D6F7638C381}.Release|x86.Build.0 = Release|Any CPU
106+
EndGlobalSection
107+
GlobalSection(SolutionProperties) = preSolution
108+
HideSolutionNode = FALSE
109+
EndGlobalSection
110+
GlobalSection(NestedProjects) = preSolution
111+
{B98D1645-CBE3-4466-BCDA-09B0E4044449} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
112+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
113+
{482B37E4-8CBF-426A-865C-8AB7E4E145DA} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11}
114+
{21873564-1FF0-41B3-B9EE-3D1EAF274763} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11}
115+
{FF8CF906-96C1-4205-8E53-CFE933F054A2} = {637F7C28-82DB-4DFA-ADB4-B6061538FC11}
116+
{08CA7750-BA09-4987-BC55-2D6F7638C381} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
117+
EndGlobalSection
118+
GlobalSection(ExtensibilityGlobals) = postSolution
119+
SolutionGuid = {EC4AAEB0-EC5C-4B9D-AEC3-D2BCB8D89226}
120+
EndGlobalSection
121+
EndGlobal

0 commit comments

Comments
 (0)