diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000000..9a0da4aa9b
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,17 @@
+This template is not intended to be prescriptive, but to help us review pull requests it would be useful if you included as much of the following information as possible:
+
+- What does the pull request do?
+- What is the current behavior?
+- What is the updated/expected behavior with this PR?
+- How was the solution implemented (if it's not obvious)?
+
+Checklist:
+
+- [ ] Added unit tests (if possible)?
+- [ ] Added XML documentation to any related classes?
+- [ ] Consider submitting a PR to https://github.com/AvaloniaUI/Avaloniaui.net with user documentation
+
+If the pull request fixes issue(s) list them like this:
+
+Fixes #123
+Fixes #456
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 640725fa26..a9a8fd36b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -108,7 +108,7 @@ AppPackages/
# NCrunch
_NCrunch_*/
*.ncrunchsolution.user
-nCrunchTemp_*/
+nCrunchTemp_*
# Others
sql/
@@ -159,6 +159,12 @@ $RECYCLE.BIN/
*.userprefs
*.nugetreferenceswitcher
+
+#################
+## Rider
+#################
+.idea
+
#################
## Cake
#################
@@ -169,3 +175,6 @@ artifacts/
nuget
Avalonia.XBuild.sln
project.lock.json
+.idea/*
+**/obj-Skia/*
+**/obj-Direct2D1/*
diff --git a/.gitmodules b/.gitmodules
index 0b2349ad42..2d2a9ac497 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,13 +1,3 @@
-[submodule "src/Avalonia.ReactiveUI/src"]
- path = src/Avalonia.ReactiveUI/src
- url = https://github.com/reactiveui/ReactiveUI.git
-[submodule "src/Avalonia.HtmlRenderer/external"]
- path = src/Avalonia.HtmlRenderer/external
- url = https://github.com/AvaloniaUI/HTML-Renderer.git
- branch = perspex-pcl
-[submodule "src/Markup/Avalonia.Markup.Xaml/OmniXAML"]
- path = src/Markup/Avalonia.Markup.Xaml/OmniXAML
- url = https://github.com/AvaloniaUI/OmniXAML.git
-[submodule "src/Markup/Avalonia.Markup.Xaml/glass"]
- path = src/Markup/Avalonia.Markup.Xaml/glass
- url = https://github.com/SuperJMN/glass
+[submodule "src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github"]
+ path = src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github
+ url = https://github.com/AvaloniaUI/Portable.Xaml.git
diff --git a/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject b/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject
new file mode 100644
index 0000000000..319cd523ce
--- /dev/null
+++ b/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
index 235da29767..2627a59093 100644
--- a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
@@ -1,6 +1,9 @@
- 1000
+
+ ..\TestFiles\Direct2D1\**.*
+
+ 3000
True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject b/.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject
index 319cd523ce..95a483b433 100644
--- a/.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject
@@ -1,5 +1,3 @@
-
- True
-
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject b/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject
index 319cd523ce..95a483b433 100644
--- a/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject
@@ -1,5 +1,3 @@
-
- True
-
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject b/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject
new file mode 100644
index 0000000000..15d9efad87
--- /dev/null
+++ b/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject
@@ -0,0 +1,9 @@
+
+
+
+
+ Avalonia.Markup.UnitTests.Data.Plugins.DataAnnotationsValidationPluginTests.Produces_Aggregate_BindingNotificationsx
+
+
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
index 235da29767..7fe2430013 100644
--- a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
@@ -1,6 +1,9 @@
- 1000
+
+ ..\TestFiles\Skia\**.*
+
+ 3000
True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject
new file mode 100644
index 0000000000..6800b4a3fe
--- /dev/null
+++ b/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
index 319cd523ce..95a483b433 100644
--- a/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
@@ -1,5 +1,3 @@
-
- True
-
+
\ No newline at end of file
diff --git a/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject b/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject
new file mode 100644
index 0000000000..319cd523ce
--- /dev/null
+++ b/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.ncrunch/RemoteTest.v3.ncrunchproject b/.ncrunch/RemoteTest.v3.ncrunchproject
new file mode 100644
index 0000000000..319cd523ce
--- /dev/null
+++ b/.ncrunch/RemoteTest.v3.ncrunchproject
@@ -0,0 +1,5 @@
+
+
+ True
+
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index a3c02eea58..51b2aaf2bc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,17 @@
language: csharp
os:
- linux
- - osx
dist: trusty
+osx_image: xcode8.3
env:
global:
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
- DOTNET_CLI_TELEMETRY_OPTOUT=1
mono:
- - latest
-dotnet: 1.0.1
+ - 5.2.0
+dotnet: 2.1.200
script:
- - ./build.sh --target "Travis" --platform "Mono" --configuration "Release"
+ - ./build.sh --target "Travis" --platform "NetCoreOnly" --configuration "Release"
notifications:
email: false
webhooks:
diff --git a/Avalonia.sln b/Avalonia.sln
index f12af02236..54f6f5e7e7 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -1,62 +1,58 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26228.4
+VisualStudioVersion = 15.0.27130.2027
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Visuals", "src\Avalonia.Visuals\Avalonia.Visuals.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals", "src\Avalonia.Visuals\Avalonia.Visuals.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Layout", "src\Avalonia.Layout\Avalonia.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout", "src\Avalonia.Layout\Avalonia.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows", "Windows", "{B39A8919-9F95-48FE-AD7B-76E08B509888}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Win32", "src\Windows\Avalonia.Win32\Avalonia.Win32.csproj", "{811A76CF-1CF6-440F-963B-BBE31BD72A82}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Win32", "src\Windows\Avalonia.Win32\Avalonia.Win32.csproj", "{811A76CF-1CF6-440F-963B-BBE31BD72A82}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1", "src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj", "{3E908F67-5543-4879-A1DC-08EACE79B3CD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1", "src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj", "{3E908F67-5543-4879-A1DC-08EACE79B3CD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Designer", "src\Windows\Avalonia.Designer\Avalonia.Designer.csproj", "{EC42600F-049B-43FF-AED1-8314D61B2749}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input", "src\Avalonia.Input\Avalonia.Input.csproj", "{62024B2D-53EB-4638-B26B-85EEAA54866E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Input", "src\Avalonia.Input\Avalonia.Input.csproj", "{62024B2D-53EB-4638-B26B-85EEAA54866E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity", "src\Avalonia.Interactivity\Avalonia.Interactivity.csproj", "{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Interactivity", "src\Avalonia.Interactivity\Avalonia.Interactivity.csproj", "{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls", "src\Avalonia.Controls\Avalonia.Controls.csproj", "{D2221C82-4A25-4583-9B43-D791E3F6820C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Controls", "src\Avalonia.Controls\Avalonia.Controls.csproj", "{D2221C82-4A25-4583-9B43-D791E3F6820C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling", "src\Avalonia.Styling\Avalonia.Styling.csproj", "{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Styling", "src\Avalonia.Styling\Avalonia.Styling.csproj", "{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Default", "src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Themes.Default", "src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Animation", "src\Avalonia.Animation\Avalonia.Animation.csproj", "{D211E587-D8BC-45B9-95A4-F297C8FA5200}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Animation", "src\Avalonia.Animation\Avalonia.Animation.csproj", "{D211E587-D8BC-45B9-95A4-F297C8FA5200}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Styling.UnitTests", "tests\Avalonia.Styling.UnitTests\Avalonia.Styling.UnitTests.csproj", "{47ECDF59-DEF8-4C53-87B1-2098A3429059}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling.UnitTests", "tests\Avalonia.Styling.UnitTests\Avalonia.Styling.UnitTests.csproj", "{47ECDF59-DEF8-4C53-87B1-2098A3429059}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Visuals.UnitTests", "tests\Avalonia.Visuals.UnitTests\Avalonia.Visuals.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Base.UnitTests", "tests\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj", "{2905FF23-53FB-45E6-AA49-6AF47A172056}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals.UnitTests", "tests\Avalonia.Visuals.UnitTests\Avalonia.Visuals.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Layout.UnitTests", "tests\Avalonia.Layout.UnitTests\Avalonia.Layout.UnitTests.csproj", "{DB070A10-BF39-4752-8456-86E9D5928478}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base.UnitTests", "tests\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj", "{2905FF23-53FB-45E6-AA49-6AF47A172056}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Interactivity.UnitTests", "tests\Avalonia.Interactivity.UnitTests\Avalonia.Interactivity.UnitTests.csproj", "{08478EF5-44E8-42E9-92D6-15E00EC038D8}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout.UnitTests", "tests\Avalonia.Layout.UnitTests\Avalonia.Layout.UnitTests.csproj", "{DB070A10-BF39-4752-8456-86E9D5928478}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity.UnitTests", "tests\Avalonia.Interactivity.UnitTests\Avalonia.Interactivity.UnitTests.csproj", "{08478EF5-44E8-42E9-92D6-15E00EC038D8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Input.UnitTests", "tests\Avalonia.Input.UnitTests\Avalonia.Input.UnitTests.csproj", "{AC18926A-E784-40FE-B09D-BB0FE2B599F0}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.Direct2D1.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests", "tests\Avalonia.Input.UnitTests\Avalonia.Input.UnitTests.csproj", "{AC18926A-E784-40FE-B09D-BB0FE2B599F0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Cairo.RenderTests.csproj", "{E106CF37-4066-4615-B684-172A6D30B058}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Markup", "Markup", "{8B6A8209-894F-4BA1-B880-965FD453982C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Markup.Xaml", "src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj", "{3E53A01A-B331-47F3-B828-4A5717E77A24}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml", "src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj", "{3E53A01A-B331-47F3-B828-4A5717E77A24}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{9B9E3891-2366-4253-A952-D08BCEB71098}"
EndProject
@@ -67,34 +63,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DE
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B9894058-278A-46B5-B6ED-AD613FCC03B3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Gtk", "src\Gtk\Avalonia.Gtk\Avalonia.Gtk.csproj", "{54F237D5-A70A-4752-9656-0C70B1A7B047}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo", "src\Gtk\Avalonia.Cairo\Avalonia.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.HtmlRenderer", "src\Avalonia.HtmlRenderer\Avalonia.HtmlRenderer.csproj", "{5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "PlatformSupport", "src\Shared\PlatformSupport\PlatformSupport.shproj", "{E4D9629C-F168-4224-3F51-A5E482FFBC42}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Markup", "src\Markup\Avalonia.Markup\Avalonia.Markup.csproj", "{6417E941-21BC-467B-A771-0DE389353CE6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup", "src\Markup\Avalonia.Markup\Avalonia.Markup.csproj", "{6417E941-21BC-467B-A771-0DE389353CE6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Markup.UnitTests", "tests\Avalonia.Markup.UnitTests\Avalonia.Markup.UnitTests.csproj", "{8EF392D5-1416-45AA-9956-7CBBC3229E8A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.UnitTests", "tests\Avalonia.Markup.UnitTests\Avalonia.Markup.UnitTests.csproj", "{8EF392D5-1416-45AA-9956-7CBBC3229E8A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BindingTest", "samples\BindingTest\BindingTest.csproj", "{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BindingTest", "samples\BindingTest\BindingTest.csproj", "{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "RenderHelpers", "src\Shared\RenderHelpers\RenderHelpers.shproj", "{3C4C0CB4-0C0F-4450-A37B-148C84FF905F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Skia", "Skia", "{3743B0F2-CC41-4F14-A8C8-267F579BF91E}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.shproj", "{2F59F3D0-748D-4652-B01E-E0D954756308}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.Desktop", "src\Skia\Avalonia.Skia.Desktop\Avalonia.Skia.Desktop.csproj", "{925DD807-B651-475F-9F7C-CBEB974CE43D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.Android", "src\Skia\Avalonia.Skia.Android\Avalonia.Skia.Android.csproj", "{BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.iOS", "src\Skia\Avalonia.Skia.iOS\Avalonia.Skia.iOS.csproj", "{47BE08A7-5985-410B-9FFC-2264B8EA595F}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Android", "Android", "{7CF9789C-F1D3-4D0E-90E5-F1DF67A2753F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Android", "src\Android\Avalonia.Android\Avalonia.Android.csproj", "{7B92AF71-6287-4693-9DCB-BD5B6E927E23}"
@@ -107,60 +89,50 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.iOS", "src\iOS\Ava
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.iOSTestApplication", "src\iOS\Avalonia.iOSTestApplication\Avalonia.iOSTestApplication.csproj", "{8C923867-8A8F-4F6B-8B80-47D9E8436166}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.LeakTests", "tests\Avalonia.LeakTests\Avalonia.LeakTests.csproj", "{E1AA3DBF-9056-4530-9376-18119A7A3FFE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.LeakTests", "tests\Avalonia.LeakTests\Avalonia.LeakTests.csproj", "{E1AA3DBF-9056-4530-9376-18119A7A3FFE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.UnitTests", "tests\Avalonia.UnitTests\Avalonia.UnitTests.csproj", "{88060192-33D5-4932-B0F9-8BD2763E857D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.UnitTests", "tests\Avalonia.UnitTests\Avalonia.UnitTests.csproj", "{88060192-33D5-4932-B0F9-8BD2763E857D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Benchmarks", "tests\Avalonia.Benchmarks\Avalonia.Benchmarks.csproj", "{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Benchmarks", "tests\Avalonia.Benchmarks\Avalonia.Benchmarks.csproj", "{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Logging.Serilog", "src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj", "{B61B66A3-B82D-4875-8001-89D3394FE0C9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Logging.Serilog", "src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj", "{B61B66A3-B82D-4875-8001-89D3394FE0C9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DesignerSupport", "src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj", "{799A7BB5-3C2C-48B6-85A7-406A12C420DA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DesignerSupport", "src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj", "{799A7BB5-3C2C-48B6-85A7-406A12C420DA}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog", "samples\ControlCatalog\ControlCatalog.csproj", "{D0A739B9-3C68-4BA6-A328-41606954B6BD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog", "samples\ControlCatalog\ControlCatalog.csproj", "{D0A739B9-3C68-4BA6-A328-41606954B6BD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Desktop", "samples\ControlCatalog.Desktop\ControlCatalog.Desktop.csproj", "{2B888490-D14A-4BCA-AB4B-48676FA93C9B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Desktop", "samples\ControlCatalog.Desktop\ControlCatalog.Desktop.csproj", "{2B888490-D14A-4BCA-AB4B-48676FA93C9B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.iOS", "samples\ControlCatalog.iOS\ControlCatalog.iOS.csproj", "{57E0455D-D565-44BB-B069-EE1AA20F8337}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Skia.RenderTests.csproj", "{D35A9F3D-8BB0-496E-BF72-444038A7DEBB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DesignerSupport.Tests", "tests\Avalonia.DesignerSupport.Tests\Avalonia.DesignerSupport.Tests.csproj", "{52F55355-D120-42AC-8116-8410A7D602FA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DesignerSupport.Tests", "tests\Avalonia.DesignerSupport.Tests\Avalonia.DesignerSupport.Tests.csproj", "{52F55355-D120-42AC-8116-8410A7D602FA}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DesignerSupport.TestApp", "tests\Avalonia.DesignerSupport.TestApp\Avalonia.DesignerSupport.TestApp.csproj", "{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DesignerSupport.TestApp", "tests\Avalonia.DesignerSupport.TestApp\Avalonia.DesignerSupport.TestApp.csproj", "{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Avalonia.RenderTests", "tests\Avalonia.RenderTests\Avalonia.RenderTests.shproj", "{48840EDD-24BF-495D-911E-2EB12AE75D3B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VirtualizationTest", "samples\VirtualizationTest\VirtualizationTest.csproj", "{FBCAF3D0-2808-4934-8E96-3F607594517B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VirtualizationTest", "samples\VirtualizationTest\VirtualizationTest.csproj", "{FBCAF3D0-2808-4934-8E96-3F607594517B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC0258-D18C-4AB3-854F-7101680FC3F9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GtkInteropDemo", "samples\interop\GtkInteropDemo\GtkInteropDemo.csproj", "{BD7F352C-6DC1-4740-BAF2-2D34A038728C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RenderTest", "samples\RenderTest\RenderTest.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RenderTest", "samples\RenderTest\RenderTest.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Avalonia.Win32.Shared", "src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.shproj", "{9DEFC6B7-845B-4D8F-AFC0-D32BF0032B8C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Win32.NetStandard", "src\Windows\Avalonia.Win32.NetStandard\Avalonia.Win32.NetStandard.csproj", "{40759A76-D0F2-464E-8000-6FF0F5C4BD7C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetCoreRuntime", "src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj", "{7863EA94-F0FB-4386-BF8C-E5BFA761560A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DotNetCoreRuntime", "src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj", "{7863EA94-F0FB-4386-BF8C-E5BFA761560A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.Desktop.NetStandard", "src\Skia\Avalonia.Skia.Desktop.NetStandard\Avalonia.Skia.Desktop.NetStandard.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gtk3", "src\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj", "{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Gtk3", "src\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj", "{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.NetCore", "samples\ControlCatalog.NetCore\ControlCatalog.NetCore.csproj", "{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{74487168-7D91-487E-BF93-055F2251461E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.NetCore", "samples\ControlCatalog.NetCore\ControlCatalog.NetCore.csproj", "{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}"
ProjectSection(SolutionItems) = preProject
+ build\Base.props = build\Base.props
+ build\Binding.props = build\Binding.props
build\JetBrains.Annotations.props = build\JetBrains.Annotations.props
build\JetBrains.dotMemoryUnit.props = build\JetBrains.dotMemoryUnit.props
build\Magick.NET-Q16-AnyCPU.props = build\Magick.NET-Q16-AnyCPU.props
@@ -169,11 +141,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1
build\Microsoft.Reactive.Testing.props = build\Microsoft.Reactive.Testing.props
build\Moq.props = build\Moq.props
build\NetCore.props = build\NetCore.props
+ build\ReactiveUI.props = build\ReactiveUI.props
build\Rx.props = build\Rx.props
+ build\SampleApp.props = build\SampleApp.props
build\Serilog.props = build\Serilog.props
- build\Serilog.Sinks.Trace.props = build\Serilog.Sinks.Trace.props
build\SharpDX.props = build\SharpDX.props
- build\SkiaSharp.Desktop.props = build\SkiaSharp.Desktop.props
build\SkiaSharp.props = build\SkiaSharp.props
build\Splat.props = build\Splat.props
build\Sprache.props = build\Sprache.props
@@ -187,57 +159,62 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{4D6F
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Linux", "Linux", "{86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.LinuxFramebuffer", "src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj", "{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.LinuxFramebuffer", "src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj", "{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Direct3DInteropSample", "samples\interop\Direct3DInteropSample\Direct3DInteropSample.csproj", "{638580B0-7910-40EF-B674-DCB34DA308CD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Win32.Interop", "src\Windows\Avalonia.Win32.Interop\Avalonia.Win32.Interop.csproj", "{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.RenderTests", "tests\Avalonia.Skia.RenderTests\Avalonia.Skia.RenderTests.csproj", "{E1582370-37B3-403C-917F-8209551B1634}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Remote.Protocol", "src\Avalonia.Remote.Protocol\Avalonia.Remote.Protocol.csproj", "{D78A720C-C0C6-478B-8564-F167F9BDD01B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RemoteTest", "samples\RemoteTest\RemoteTest.csproj", "{E2999E4A-9086-401F-898C-AEB0AD38E676}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Direct3DInteropSample", "samples\interop\Direct3DInteropSample\Direct3DInteropSample.csproj", "{638580B0-7910-40EF-B674-DCB34DA308CD}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{4ED8B739-6F4E-4CD4-B993-545E6B5CE637}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Designer.HostApp", "src\tools\Avalonia.Designer.HostApp\Avalonia.Designer.HostApp.csproj", "{050CC912-FF49-4A8B-B534-9544017446DD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Previewer", "samples\Previewer\Previewer.csproj", "{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OSX", "OSX", "{A59C4C0A-64DF-4621-B450-2BA00D6F61E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.MonoMac", "src\OSX\Avalonia.MonoMac\Avalonia.MonoMac.csproj", "{CBFD5788-567D-401B-9DFA-74E4224025A0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Designer.HostApp.NetFX", "src\tools\Avalonia.Designer.HostApp.NetFX\Avalonia.Designer.HostApp.NetFX.csproj", "{4ADA61C8-D191-428D-9066-EF4F0D86520F}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
- src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{2f59f3d0-748d-4652-b01e-e0d954756308}*SharedItemsImports = 13
src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13
src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4
- src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{40759a76-d0f2-464e-8000-6ff0f5c4bd7c}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4
- src\Shared\RenderHelpers\RenderHelpers.projitems*{47be08a7-5985-410b-9ffc-2264b8ea595f}*SharedItemsImports = 4
- src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{47be08a7-5985-410b-9ffc-2264b8ea595f}*SharedItemsImports = 4
- tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{48840edd-24bf-495d-911e-2eb12ae75d3b}*SharedItemsImports = 13
src\Shared\PlatformSupport\PlatformSupport.projitems*{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{7863ea94-f0fb-4386-bf8c-e5bfa761560a}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{7b92af71-6287-4693-9dcb-bd5b6e927e23}*SharedItemsImports = 4
src\Shared\RenderHelpers\RenderHelpers.projitems*{7d2d3083-71dd-4cc9-8907-39a0d86fb322}*SharedItemsImports = 4
- src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{7d2d3083-71dd-4cc9-8907-39a0d86fb322}*SharedItemsImports = 4
- src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{811a76cf-1cf6-440f-963b-bbe31bd72a82}*SharedItemsImports = 4
- src\Shared\RenderHelpers\RenderHelpers.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4
- src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4
- src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{9defc6b7-845b-4d8f-afc0-d32bf0032b8c}*SharedItemsImports = 13
- src\Shared\RenderHelpers\RenderHelpers.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4
- src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4
- tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{d35a9f3d-8bb0-496e-bf72-444038a7debb}*SharedItemsImports = 4
tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4
- tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{e106cf37-4066-4615-b684-172a6d30b058}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{e4d9629c-f168-4224-3f51-a5e482ffbc42}*SharedItemsImports = 13
- src\Shared\RenderHelpers\RenderHelpers.projitems*{fb05ac90-89ba-4f2f-a924-f37875fb547c}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
Ad-Hoc|iPhone = Ad-Hoc|iPhone
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
- Ad-Hoc|Mono = Ad-Hoc|Mono
+ Ad-Hoc|NetCoreOnly = Ad-Hoc|NetCoreOnly
Ad-Hoc|x86 = Ad-Hoc|x86
AppStore|Any CPU = AppStore|Any CPU
AppStore|iPhone = AppStore|iPhone
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
- AppStore|Mono = AppStore|Mono
+ AppStore|NetCoreOnly = AppStore|NetCoreOnly
AppStore|x86 = AppStore|x86
Debug|Any CPU = Debug|Any CPU
Debug|iPhone = Debug|iPhone
Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Debug|Mono = Debug|Mono
+ Debug|NetCoreOnly = Debug|NetCoreOnly
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
- Release|Mono = Release|Mono
+ Release|NetCoreOnly = Release|NetCoreOnly
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
@@ -247,7 +224,7 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -256,7 +233,7 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|iPhone.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|x86.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.AppStore|x86.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -265,8 +242,8 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|iPhone.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|Mono.Build.0 = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x86.ActiveCfg = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Debug|x86.Build.0 = Debug|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -275,8 +252,8 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhone.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Mono.ActiveCfg = Release|Any CPU
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|Mono.Build.0 = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x86.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|x86.Build.0 = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -285,7 +262,7 @@ Global
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -294,7 +271,7 @@ Global
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhone.Build.0 = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|x86.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|x86.Build.0 = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -303,8 +280,8 @@ Global
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhone.Build.0 = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Mono.Build.0 = Debug|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|x86.ActiveCfg = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|x86.Build.0 = Debug|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -313,8 +290,8 @@ Global
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhone.Build.0 = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Mono.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Mono.Build.0 = Release|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|x86.ActiveCfg = Release|Any CPU
{EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|x86.Build.0 = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -323,7 +300,7 @@ Global
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -332,7 +309,7 @@ Global
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhone.Build.0 = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|x86.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|x86.Build.0 = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -341,8 +318,8 @@ Global
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhone.Build.0 = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Mono.Build.0 = Debug|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|x86.ActiveCfg = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|x86.Build.0 = Debug|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -351,8 +328,8 @@ Global
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhone.Build.0 = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Mono.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Mono.Build.0 = Release|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|x86.ActiveCfg = Release|Any CPU
{42472427-4774-4C81-8AFF-9F27B8E31721}.Release|x86.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -361,7 +338,7 @@ Global
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -370,7 +347,7 @@ Global
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|iPhone.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|x86.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.AppStore|x86.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -379,7 +356,8 @@ Global
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|iPhone.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x86.ActiveCfg = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Debug|x86.Build.0 = Debug|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -388,7 +366,8 @@ Global
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|iPhone.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|Mono.ActiveCfg = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x86.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Release|x86.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -397,7 +376,7 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -406,7 +385,7 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|iPhone.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|x86.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.AppStore|x86.Build.0 = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -415,7 +394,7 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|iPhone.Build.0 = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|x86.ActiveCfg = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Debug|x86.Build.0 = Debug|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -424,48 +403,16 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhone.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|Mono.ActiveCfg = Release|Any CPU
+ {3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|x86.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|x86.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|iPhone.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|iPhone.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|Mono.ActiveCfg = Release|Any CPU
- {EC42600F-049B-43FF-AED1-8314D61B2749}.Release|x86.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -474,7 +421,7 @@ Global
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhone.Build.0 = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|x86.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|x86.Build.0 = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -483,8 +430,8 @@ Global
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhone.Build.0 = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Mono.Build.0 = Debug|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|x86.ActiveCfg = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|x86.Build.0 = Debug|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -493,8 +440,8 @@ Global
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhone.Build.0 = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Mono.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Mono.Build.0 = Release|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|x86.ActiveCfg = Release|Any CPU
{62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|x86.Build.0 = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -503,7 +450,7 @@ Global
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -512,7 +459,7 @@ Global
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhone.Build.0 = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|x86.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|x86.Build.0 = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -521,8 +468,8 @@ Global
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhone.Build.0 = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Mono.Build.0 = Debug|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|x86.ActiveCfg = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|x86.Build.0 = Debug|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -531,8 +478,8 @@ Global
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhone.Build.0 = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Mono.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Mono.Build.0 = Release|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|x86.ActiveCfg = Release|Any CPU
{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|x86.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -541,7 +488,7 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -550,7 +497,7 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|iPhone.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|x86.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.AppStore|x86.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -559,8 +506,8 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|iPhone.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|Mono.Build.0 = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x86.ActiveCfg = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Debug|x86.Build.0 = Debug|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -569,8 +516,8 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhone.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Mono.ActiveCfg = Release|Any CPU
- {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|Mono.Build.0 = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x86.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|x86.Build.0 = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -579,7 +526,7 @@ Global
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -588,7 +535,7 @@ Global
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhone.Build.0 = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|x86.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|x86.Build.0 = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -597,8 +544,8 @@ Global
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhone.Build.0 = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Mono.Build.0 = Debug|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|x86.ActiveCfg = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|x86.Build.0 = Debug|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -607,8 +554,8 @@ Global
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhone.Build.0 = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Mono.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Mono.Build.0 = Release|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|x86.ActiveCfg = Release|Any CPU
{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|x86.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -617,7 +564,7 @@ Global
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -626,7 +573,7 @@ Global
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|iPhone.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|x86.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.AppStore|x86.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -635,8 +582,8 @@ Global
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|iPhone.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Mono.Build.0 = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x86.ActiveCfg = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|x86.Build.0 = Debug|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -645,8 +592,8 @@ Global
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|iPhone.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Mono.ActiveCfg = Release|Any CPU
- {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Mono.Build.0 = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x86.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|x86.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -655,7 +602,7 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -664,7 +611,7 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|iPhone.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|x86.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.AppStore|x86.Build.0 = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -673,8 +620,8 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|iPhone.Build.0 = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Mono.Build.0 = Debug|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|x86.ActiveCfg = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|x86.Build.0 = Debug|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -683,8 +630,8 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhone.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Mono.ActiveCfg = Release|Any CPU
- {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Mono.Build.0 = Release|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|x86.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|x86.Build.0 = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -693,7 +640,7 @@ Global
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -702,7 +649,7 @@ Global
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhone.Build.0 = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|x86.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|x86.Build.0 = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -711,8 +658,8 @@ Global
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhone.Build.0 = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Mono.Build.0 = Debug|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|x86.ActiveCfg = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|x86.Build.0 = Debug|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -721,8 +668,8 @@ Global
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhone.Build.0 = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Mono.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Mono.Build.0 = Release|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|x86.ActiveCfg = Release|Any CPU
{D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|x86.Build.0 = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -731,7 +678,7 @@ Global
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -740,7 +687,7 @@ Global
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhone.Build.0 = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|x86.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|x86.Build.0 = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -749,8 +696,8 @@ Global
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhone.Build.0 = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Mono.Build.0 = Debug|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|x86.ActiveCfg = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|x86.Build.0 = Debug|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -759,8 +706,8 @@ Global
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhone.Build.0 = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Mono.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Mono.Build.0 = Release|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|x86.ActiveCfg = Release|Any CPU
{47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|x86.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -769,7 +716,7 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -778,7 +725,7 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|iPhone.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|x86.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.AppStore|x86.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -787,8 +734,8 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|iPhone.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Mono.Build.0 = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x86.ActiveCfg = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|x86.Build.0 = Debug|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -797,8 +744,8 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhone.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Mono.ActiveCfg = Release|Any CPU
- {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Mono.Build.0 = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x86.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|x86.Build.0 = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -807,7 +754,7 @@ Global
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -816,7 +763,7 @@ Global
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhone.Build.0 = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|x86.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|x86.Build.0 = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -825,8 +772,8 @@ Global
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhone.Build.0 = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Mono.Build.0 = Debug|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|x86.ActiveCfg = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Debug|x86.Build.0 = Debug|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -835,8 +782,8 @@ Global
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhone.Build.0 = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Mono.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Mono.Build.0 = Release|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {76716382-3159-460E-BDA6-C5715CF606D7}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|x86.ActiveCfg = Release|Any CPU
{76716382-3159-460E-BDA6-C5715CF606D7}.Release|x86.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -845,7 +792,7 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -854,7 +801,7 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|iPhone.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|x86.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.AppStore|x86.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -863,8 +810,8 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|iPhone.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|Mono.Build.0 = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x86.ActiveCfg = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Debug|x86.Build.0 = Debug|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -873,8 +820,8 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhone.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|Mono.ActiveCfg = Release|Any CPU
- {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|Mono.Build.0 = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x86.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|x86.Build.0 = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -883,7 +830,7 @@ Global
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -892,7 +839,7 @@ Global
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhone.Build.0 = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|x86.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|x86.Build.0 = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -901,8 +848,8 @@ Global
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhone.Build.0 = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Mono.Build.0 = Debug|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|x86.ActiveCfg = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Debug|x86.Build.0 = Debug|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -911,8 +858,8 @@ Global
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhone.Build.0 = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Mono.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Mono.Build.0 = Release|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {DB070A10-BF39-4752-8456-86E9D5928478}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|x86.ActiveCfg = Release|Any CPU
{DB070A10-BF39-4752-8456-86E9D5928478}.Release|x86.Build.0 = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -921,7 +868,7 @@ Global
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -930,7 +877,7 @@ Global
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhone.Build.0 = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|x86.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|x86.Build.0 = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -939,8 +886,8 @@ Global
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhone.Build.0 = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Mono.Build.0 = Debug|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|x86.ActiveCfg = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|x86.Build.0 = Debug|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -949,8 +896,8 @@ Global
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhone.Build.0 = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Mono.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Mono.Build.0 = Release|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|x86.ActiveCfg = Release|Any CPU
{08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|x86.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -959,7 +906,7 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -968,7 +915,7 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|iPhone.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|x86.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.AppStore|x86.Build.0 = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -977,7 +924,7 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|iPhone.Build.0 = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|x86.ActiveCfg = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Debug|x86.Build.0 = Debug|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -986,7 +933,7 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhone.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|Mono.ActiveCfg = Release|Any CPU
+ {DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|x86.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|x86.Build.0 = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -995,7 +942,7 @@ Global
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1004,7 +951,7 @@ Global
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhone.Build.0 = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|x86.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|x86.Build.0 = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1013,8 +960,8 @@ Global
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhone.Build.0 = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Mono.Build.0 = Debug|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|x86.ActiveCfg = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|x86.Build.0 = Debug|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1023,8 +970,8 @@ Global
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhone.Build.0 = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Mono.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Mono.Build.0 = Release|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|x86.ActiveCfg = Release|Any CPU
{AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|x86.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1033,7 +980,7 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1042,7 +989,7 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|iPhone.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|x86.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.AppStore|x86.Build.0 = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1051,7 +998,7 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|iPhone.Build.0 = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|x86.ActiveCfg = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Debug|x86.Build.0 = Debug|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1060,54 +1007,16 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|iPhone.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|Mono.ActiveCfg = Release|Any CPU
+ {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1116,7 +1025,7 @@ Global
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|iPhone.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|x86.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.AppStore|x86.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1125,8 +1034,8 @@ Global
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|iPhone.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|Mono.Build.0 = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x86.ActiveCfg = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Debug|x86.Build.0 = Debug|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1135,8 +1044,8 @@ Global
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|iPhone.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|Mono.ActiveCfg = Release|Any CPU
- {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|Mono.Build.0 = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {99135EAB-653D-47E4-A378-C96E1278CA44}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x86.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Release|x86.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1145,7 +1054,7 @@ Global
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1154,7 +1063,7 @@ Global
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|iPhone.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|x86.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.AppStore|x86.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1163,8 +1072,8 @@ Global
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|iPhone.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|Mono.Build.0 = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x86.ActiveCfg = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Debug|x86.Build.0 = Debug|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1173,93 +1082,17 @@ Global
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|iPhone.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Mono.ActiveCfg = Release|Any CPU
- {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Mono.Build.0 = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1268,7 +1101,7 @@ Global
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|iPhone.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|x86.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.AppStore|x86.Build.0 = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1277,8 +1110,8 @@ Global
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|iPhone.Build.0 = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|Mono.Build.0 = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|x86.ActiveCfg = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Debug|x86.Build.0 = Debug|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1287,55 +1120,17 @@ Global
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|iPhone.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|Mono.ActiveCfg = Release|Any CPU
- {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|Mono.Build.0 = Release|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|x86.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|x86.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Mono.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Mono.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Mono.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|x86.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|x86.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1344,7 +1139,7 @@ Global
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|iPhone.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|x86.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.AppStore|x86.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1353,8 +1148,8 @@ Global
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|iPhone.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|Mono.Build.0 = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x86.ActiveCfg = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Debug|x86.Build.0 = Debug|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1363,8 +1158,8 @@ Global
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|iPhone.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.Release|Mono.ActiveCfg = Release|Any CPU
- {6417E941-21BC-467B-A771-0DE389353CE6}.Release|Mono.Build.0 = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {6417E941-21BC-467B-A771-0DE389353CE6}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|x86.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Release|x86.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1373,7 +1168,7 @@ Global
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1382,7 +1177,7 @@ Global
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|iPhone.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|x86.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.AppStore|x86.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1391,8 +1186,8 @@ Global
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|iPhone.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|Mono.Build.0 = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x86.ActiveCfg = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Debug|x86.Build.0 = Debug|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1401,8 +1196,8 @@ Global
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|iPhone.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|Mono.ActiveCfg = Release|Any CPU
- {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|Mono.Build.0 = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x86.ActiveCfg = Release|Any CPU
{8EF392D5-1416-45AA-9956-7CBBC3229E8A}.Release|x86.Build.0 = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1411,7 +1206,7 @@ Global
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1420,7 +1215,7 @@ Global
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|iPhone.Build.0 = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|x86.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.AppStore|x86.Build.0 = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1429,8 +1224,7 @@ Global
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|iPhone.Build.0 = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|Mono.Build.0 = Debug|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x86.ActiveCfg = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Debug|x86.Build.0 = Debug|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1439,163 +1233,58 @@ Global
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|iPhone.Build.0 = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|Mono.ActiveCfg = Release|Any CPU
- {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|Mono.Build.0 = Release|Any CPU
+ {08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x86.ActiveCfg = Release|Any CPU
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162}.Release|x86.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|x86.ActiveCfg = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Ad-Hoc|x86.Build.0 = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|iPhone.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|x86.ActiveCfg = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.AppStore|x86.Build.0 = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|Any CPU.ActiveCfg = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|Any CPU.Build.0 = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|iPhone.ActiveCfg = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|iPhone.Build.0 = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|x86.ActiveCfg = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|x86.Build.0 = Debug|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|Any CPU.ActiveCfg = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|Any CPU.Build.0 = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|iPhone.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|Mono.ActiveCfg = Release|Any CPU
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|x86.ActiveCfg = Release|x86
- {925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|x86.Build.0 = Release|x86
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|iPhone.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.AppStore|x86.Build.0 = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Debug|x86.Build.0 = Debug|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|iPhone.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|Mono.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|x86.ActiveCfg = Release|Any CPU
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298}.Release|x86.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|iPhone.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.AppStore|x86.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Debug|x86.Build.0 = Debug|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|Any CPU.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|iPhone.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|Mono.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|x86.ActiveCfg = Release|Any CPU
- {47BE08A7-5985-410B-9FFC-2264B8EA595F}.Release|x86.Build.0 = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|x86.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.AppStore|x86.Build.0 = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x86.ActiveCfg = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Debug|x86.Build.0 = Debug|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Any CPU.Build.0 = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|iPhone.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Mono.ActiveCfg = Release|Any CPU
+ {7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x86.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|x86.Build.0 = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|iPhone.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|x86.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.Build.0 = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.Deploy.0 = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|iPhone.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Mono.ActiveCfg = Release|Any CPU
+ {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|x86.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
@@ -1603,7 +1292,7 @@ Global
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1612,7 +1301,7 @@ Global
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|iPhone.Build.0 = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|x86.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.AppStore|x86.Build.0 = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1621,7 +1310,7 @@ Global
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|iPhone.Build.0 = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x86.ActiveCfg = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Debug|x86.Build.0 = Debug|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1630,7 +1319,7 @@ Global
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|iPhone.Build.0 = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|Mono.ActiveCfg = Release|Any CPU
+ {4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x86.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Release|x86.Build.0 = Release|Any CPU
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
@@ -1638,28 +1327,28 @@ Global
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
- {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|Mono.ActiveCfg = Ad-Hoc|iPhoneSimulator
+ {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|NetCoreOnly.ActiveCfg = Ad-Hoc|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|iPhone.Build.0 = AppStore|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
- {8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|Mono.ActiveCfg = AppStore|iPhoneSimulator
+ {8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|NetCoreOnly.ActiveCfg = AppStore|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.AppStore|x86.ActiveCfg = AppStore|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|Any CPU.ActiveCfg = Debug|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|iPhone.ActiveCfg = Debug|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|iPhone.Build.0 = Debug|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|Mono.ActiveCfg = Debug|iPhoneSimulator
+ {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|NetCoreOnly.ActiveCfg = Debug|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|Any CPU.ActiveCfg = Release|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|iPhone.ActiveCfg = Release|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|iPhone.Build.0 = Release|iPhone
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|Mono.ActiveCfg = Release|iPhoneSimulator
+ {8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|NetCoreOnly.ActiveCfg = Release|iPhoneSimulator
{8C923867-8A8F-4F6B-8B80-47D9E8436166}.Release|x86.ActiveCfg = Release|iPhoneSimulator
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
@@ -1667,7 +1356,7 @@ Global
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1676,7 +1365,7 @@ Global
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|iPhone.Build.0 = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|x86.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.AppStore|x86.Build.0 = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1685,7 +1374,7 @@ Global
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|iPhone.Build.0 = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x86.ActiveCfg = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Debug|x86.Build.0 = Debug|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1694,7 +1383,7 @@ Global
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|iPhone.Build.0 = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|Mono.ActiveCfg = Release|Any CPU
+ {E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x86.ActiveCfg = Release|Any CPU
{E1AA3DBF-9056-4530-9376-18119A7A3FFE}.Release|x86.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1703,7 +1392,7 @@ Global
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1712,7 +1401,7 @@ Global
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|iPhone.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|x86.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.AppStore|x86.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1721,8 +1410,8 @@ Global
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|iPhone.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|Mono.Build.0 = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x86.ActiveCfg = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Debug|x86.Build.0 = Debug|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1731,8 +1420,8 @@ Global
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|iPhone.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|Mono.ActiveCfg = Release|Any CPU
- {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|Mono.Build.0 = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {88060192-33D5-4932-B0F9-8BD2763E857D}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x86.ActiveCfg = Release|Any CPU
{88060192-33D5-4932-B0F9-8BD2763E857D}.Release|x86.Build.0 = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1741,7 +1430,7 @@ Global
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1750,7 +1439,7 @@ Global
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|iPhone.Build.0 = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|x86.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.AppStore|x86.Build.0 = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1759,8 +1448,7 @@ Global
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|iPhone.Build.0 = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|Mono.Build.0 = Debug|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Debug|x86.Build.0 = Debug|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1769,8 +1457,7 @@ Global
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|iPhone.Build.0 = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|Mono.ActiveCfg = Release|Any CPU
- {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|Mono.Build.0 = Release|Any CPU
+ {410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x86.ActiveCfg = Release|Any CPU
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B}.Release|x86.Build.0 = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1779,7 +1466,7 @@ Global
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1788,7 +1475,7 @@ Global
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|iPhone.Build.0 = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|x86.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.AppStore|x86.Build.0 = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1797,8 +1484,8 @@ Global
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|iPhone.Build.0 = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|Mono.Build.0 = Debug|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|x86.ActiveCfg = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Debug|x86.Build.0 = Debug|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1807,8 +1494,8 @@ Global
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|iPhone.Build.0 = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|Mono.ActiveCfg = Release|Any CPU
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|Mono.Build.0 = Release|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|x86.ActiveCfg = Release|Any CPU
{B61B66A3-B82D-4875-8001-89D3394FE0C9}.Release|x86.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1817,7 +1504,7 @@ Global
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1826,7 +1513,7 @@ Global
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|iPhone.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|x86.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.AppStore|x86.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1835,8 +1522,8 @@ Global
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|iPhone.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|Mono.Build.0 = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x86.ActiveCfg = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Debug|x86.Build.0 = Debug|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1845,8 +1532,8 @@ Global
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|iPhone.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Mono.ActiveCfg = Release|Any CPU
- {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|Mono.Build.0 = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1855,7 +1542,7 @@ Global
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1864,7 +1551,7 @@ Global
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|iPhone.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|x86.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.AppStore|x86.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1873,8 +1560,8 @@ Global
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|iPhone.Build.0 = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|Mono.Build.0 = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Debug|x86.Build.0 = Debug|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1883,8 +1570,8 @@ Global
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|iPhone.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|Mono.ActiveCfg = Release|Any CPU
- {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|Mono.Build.0 = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x86.ActiveCfg = Release|Any CPU
{D0A739B9-3C68-4BA6-A328-41606954B6BD}.Release|x86.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -1893,7 +1580,7 @@ Global
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -1902,7 +1589,7 @@ Global
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|iPhone.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|x86.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.AppStore|x86.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -1911,8 +1598,7 @@ Global
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|iPhone.Build.0 = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|Mono.Build.0 = Debug|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x86.ActiveCfg = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Debug|x86.Build.0 = Debug|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -1921,8 +1607,7 @@ Global
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|iPhone.Build.0 = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|Mono.ActiveCfg = Release|Any CPU
- {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|Mono.Build.0 = Release|Any CPU
+ {2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x86.ActiveCfg = Release|Any CPU
{2B888490-D14A-4BCA-AB4B-48676FA93C9B}.Release|x86.Build.0 = Release|Any CPU
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
@@ -1930,72 +1615,36 @@ Global
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
- {57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|Mono.ActiveCfg = Ad-Hoc|iPhoneSimulator
+ {57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|NetCoreOnly.ActiveCfg = Ad-Hoc|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|iPhone.Build.0 = AppStore|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
- {57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|Mono.ActiveCfg = AppStore|iPhoneSimulator
+ {57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|NetCoreOnly.ActiveCfg = AppStore|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.AppStore|x86.ActiveCfg = AppStore|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|Any CPU.ActiveCfg = Debug|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|iPhone.ActiveCfg = Debug|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|iPhone.Build.0 = Debug|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
- {57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|Mono.ActiveCfg = Debug|iPhoneSimulator
+ {57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|NetCoreOnly.ActiveCfg = Debug|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Debug|x86.ActiveCfg = Debug|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|Any CPU.ActiveCfg = Release|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|iPhone.ActiveCfg = Release|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|iPhone.Build.0 = Release|iPhone
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
- {57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|Mono.ActiveCfg = Release|iPhoneSimulator
+ {57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|NetCoreOnly.ActiveCfg = Release|iPhoneSimulator
{57E0455D-D565-44BB-B069-EE1AA20F8337}.Release|x86.ActiveCfg = Release|iPhone
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|x86.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhone.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|x86.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|x86.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|Any CPU.ActiveCfg = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|Any CPU.Build.0 = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhone.ActiveCfg = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhone.Build.0 = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|x86.ActiveCfg = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|x86.Build.0 = Debug|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Any CPU.ActiveCfg = Release|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Any CPU.Build.0 = Release|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhone.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhone.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Mono.ActiveCfg = Release|Any CPU
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|x86.ActiveCfg = Release|x86
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|x86.Build.0 = Release|x86
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2004,7 +1653,7 @@ Global
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|iPhone.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|x86.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.AppStore|x86.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2013,7 +1662,8 @@ Global
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|iPhone.Build.0 = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {52F55355-D120-42AC-8116-8410A7D602FA}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|x86.ActiveCfg = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Debug|x86.Build.0 = Debug|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2022,7 +1672,8 @@ Global
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|iPhone.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {52F55355-D120-42AC-8116-8410A7D602FA}.Release|Mono.ActiveCfg = Release|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {52F55355-D120-42AC-8116-8410A7D602FA}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|x86.ActiveCfg = Release|Any CPU
{52F55355-D120-42AC-8116-8410A7D602FA}.Release|x86.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2031,7 +1682,7 @@ Global
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2040,7 +1691,7 @@ Global
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|iPhone.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|x86.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.AppStore|x86.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2049,7 +1700,8 @@ Global
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|iPhone.Build.0 = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x86.ActiveCfg = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Debug|x86.Build.0 = Debug|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2058,7 +1710,8 @@ Global
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|iPhone.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|Mono.ActiveCfg = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x86.ActiveCfg = Release|Any CPU
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}.Release|x86.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2067,7 +1720,7 @@ Global
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2076,7 +1729,7 @@ Global
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|iPhone.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|Mono.ActiveCfg = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|x86.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.AppStore|x86.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2085,8 +1738,7 @@ Global
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|iPhone.Build.0 = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|Mono.Build.0 = Debug|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x86.ActiveCfg = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Debug|x86.Build.0 = Debug|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2095,8 +1747,7 @@ Global
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|iPhone.Build.0 = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|Mono.ActiveCfg = Release|Any CPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|Mono.Build.0 = Release|Any CPU
+ {FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x86.ActiveCfg = Release|Any CPU
{FBCAF3D0-2808-4934-8E96-3F607594517B}.Release|x86.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2105,7 +1756,7 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
+ {C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2114,7 +1765,7 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|iPhone.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|Mono.ActiveCfg = Release|Any CPU
+ {C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|x86.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.AppStore|x86.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2123,7 +1774,7 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|iPhone.Build.0 = Debug|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|x86.ActiveCfg = Debug|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Debug|x86.Build.0 = Debug|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2132,57 +1783,17 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhone.Build.0 = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {C7A69145-60B6-4882-97D6-A3921DD43978}.Release|Mono.ActiveCfg = Release|Any CPU
+ {C7A69145-60B6-4882-97D6-A3921DD43978}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2191,8 +1802,8 @@ Global
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhone.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Mono.Build.0 = Release|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|x86.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|x86.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2201,8 +1812,7 @@ Global
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhone.Build.0 = Debug|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Mono.Build.0 = Debug|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|x86.Build.0 = Debug|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2211,8 +1821,7 @@ Global
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhone.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Mono.ActiveCfg = Release|Any CPU
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Mono.Build.0 = Release|Any CPU
+ {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|x86.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|x86.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2221,8 +1830,8 @@ Global
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2231,8 +1840,8 @@ Global
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|iPhone.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|Mono.Build.0 = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|x86.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.AppStore|x86.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2241,8 +1850,7 @@ Global
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|iPhone.Build.0 = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|Mono.Build.0 = Debug|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x86.ActiveCfg = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Debug|x86.Build.0 = Debug|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2251,8 +1859,7 @@ Global
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|iPhone.Build.0 = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|Mono.ActiveCfg = Release|Any CPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|Mono.Build.0 = Release|Any CPU
+ {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x86.ActiveCfg = Release|Any CPU
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Release|x86.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2264,9 +1871,9 @@ Global
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|Mono.Deploy.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|NetCoreOnly.Deploy.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
@@ -2279,9 +1886,9 @@ Global
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|Mono.Build.0 = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|Mono.Deploy.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|NetCoreOnly.Deploy.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|x86.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|x86.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.AppStore|x86.Deploy.0 = Release|Any CPU
@@ -2294,7 +1901,7 @@ Global
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|Mono.ActiveCfg = Debug|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x86.ActiveCfg = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x86.Build.0 = Debug|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Debug|x86.Deploy.0 = Debug|Any CPU
@@ -2307,56 +1914,18 @@ Global
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
- {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|Mono.ActiveCfg = Release|Any CPU
+ {29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x86.ActiveCfg = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x86.Build.0 = Release|Any CPU
{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|x86.Deploy.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Ad-Hoc|x86.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|Mono.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|x86.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.AppStore|x86.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Debug|x86.Build.0 = Debug|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|Any CPU.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|iPhone.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|Mono.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|x86.ActiveCfg = Release|Any CPU
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C}.Release|x86.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2365,8 +1934,8 @@ Global
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhone.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Mono.Build.0 = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|x86.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|x86.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2375,8 +1944,8 @@ Global
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhone.Build.0 = Debug|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Mono.Build.0 = Debug|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|x86.ActiveCfg = Debug|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|x86.Build.0 = Debug|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2385,8 +1954,8 @@ Global
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhone.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Mono.ActiveCfg = Release|Any CPU
- {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Mono.Build.0 = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|x86.ActiveCfg = Release|Any CPU
{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|x86.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2395,8 +1964,8 @@ Global
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2405,8 +1974,8 @@ Global
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|iPhone.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|Mono.Build.0 = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|x86.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.AppStore|x86.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2415,8 +1984,8 @@ Global
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|iPhone.Build.0 = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|Mono.Build.0 = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x86.ActiveCfg = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Debug|x86.Build.0 = Debug|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2425,8 +1994,8 @@ Global
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|iPhone.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|Mono.ActiveCfg = Release|Any CPU
- {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|Mono.Build.0 = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x86.ActiveCfg = Release|Any CPU
{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Release|x86.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
@@ -2435,8 +2004,8 @@ Global
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Ad-Hoc|x86.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
@@ -2445,8 +2014,8 @@ Global
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|iPhone.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|Mono.Build.0 = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|x86.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.AppStore|x86.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2455,8 +2024,8 @@ Global
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|iPhone.Build.0 = Debug|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|Mono.Build.0 = Debug|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|x86.ActiveCfg = Debug|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Debug|x86.Build.0 = Debug|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2465,8 +2034,8 @@ Global
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|iPhone.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|Mono.ActiveCfg = Release|Any CPU
- {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|Mono.Build.0 = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|x86.ActiveCfg = Release|Any CPU
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}.Release|x86.Build.0 = Release|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2475,8 +2044,8 @@ Global
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|Mono.Build.0 = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2485,8 +2054,8 @@ Global
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|iPhone.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|Mono.Build.0 = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|x86.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.AppStore|x86.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2495,8 +2064,8 @@ Global
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|iPhone.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|Mono.Build.0 = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|x86.ActiveCfg = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Debug|x86.Build.0 = Debug|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2505,8 +2074,8 @@ Global
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|iPhone.Build.0 = Release|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|Mono.ActiveCfg = Release|Any CPU
- {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|Mono.Build.0 = Release|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|x86.ActiveCfg = Release|Any CPU
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}.Release|x86.Build.0 = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2515,8 +2084,8 @@ Global
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|Mono.Build.0 = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2525,8 +2094,8 @@ Global
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|iPhone.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|Mono.Build.0 = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|x86.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.AppStore|x86.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2535,8 +2104,8 @@ Global
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|iPhone.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|Mono.Build.0 = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x86.ActiveCfg = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Debug|x86.Build.0 = Debug|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2545,8 +2114,8 @@ Global
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|iPhone.Build.0 = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|Mono.ActiveCfg = Release|Any CPU
- {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|Mono.Build.0 = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x86.ActiveCfg = Release|Any CPU
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9}.Release|x86.Build.0 = Release|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2555,8 +2124,8 @@ Global
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|Mono.Build.0 = Debug|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2565,8 +2134,8 @@ Global
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|iPhone.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|Mono.Build.0 = Debug|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|x86.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.AppStore|x86.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -2575,8 +2144,7 @@ Global
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|iPhone.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|Mono.Build.0 = Debug|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|x86.ActiveCfg = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Debug|x86.Build.0 = Debug|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -2585,10 +2153,321 @@ Global
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|iPhone.Build.0 = Release|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Release|Mono.ActiveCfg = Release|Any CPU
- {638580B0-7910-40EF-B674-DCB34DA308CD}.Release|Mono.Build.0 = Release|Any CPU
+ {638580B0-7910-40EF-B674-DCB34DA308CD}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|x86.ActiveCfg = Release|Any CPU
{638580B0-7910-40EF-B674-DCB34DA308CD}.Release|x86.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|x86.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.AppStore|x86.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Debug|x86.Build.0 = Debug|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|iPhone.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x86.ActiveCfg = Release|Any CPU
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}.Release|x86.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.AppStore|x86.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Debug|x86.Build.0 = Debug|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|iPhone.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|NetCoreOnly.Build.0 = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x86.ActiveCfg = Release|Any CPU
+ {E1582370-37B3-403C-917F-8209551B1634}.Release|x86.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.AppStore|x86.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Debug|x86.Build.0 = Debug|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|iPhone.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|NetCoreOnly.Build.0 = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x86.ActiveCfg = Release|Any CPU
+ {D78A720C-C0C6-478B-8564-F167F9BDD01B}.Release|x86.Build.0 = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.AppStore|x86.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Debug|x86.Build.0 = Debug|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|iPhone.Build.0 = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|x86.ActiveCfg = Release|Any CPU
+ {E2999E4A-9086-401F-898C-AEB0AD38E676}.Release|x86.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|x86.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.AppStore|x86.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Debug|x86.Build.0 = Debug|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|iPhone.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|NetCoreOnly.Build.0 = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x86.ActiveCfg = Release|Any CPU
+ {050CC912-FF49-4A8B-B534-9544017446DD}.Release|x86.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|x86.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.AppStore|x86.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Debug|x86.Build.0 = Debug|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhone.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|x86.ActiveCfg = Release|Any CPU
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|x86.Build.0 = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|x86.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.AppStore|x86.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Debug|x86.Build.0 = Debug|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|iPhone.Build.0 = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|NetCoreOnly.Build.0 = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|x86.ActiveCfg = Release|Any CPU
+ {CBFD5788-567D-401B-9DFA-74E4224025A0}.Release|x86.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|NetCoreOnly.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|NetCoreOnly.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|x86.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|x86.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|x86.Build.0 = Debug|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|x86.ActiveCfg = Release|Any CPU
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -2596,7 +2475,6 @@ Global
GlobalSection(NestedProjects) = preSolution
{811A76CF-1CF6-440F-963B-BBE31BD72A82} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
{3E908F67-5543-4879-A1DC-08EACE79B3CD} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
- {EC42600F-049B-43FF-AED1-8314D61B2749} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
{47ECDF59-DEF8-4C53-87B1-2098A3429059} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{76716382-3159-460E-BDA6-C5715CF606D7} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
@@ -2606,20 +2484,13 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {E106CF37-4066-4615-B684-172A6D30B058} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{99135EAB-653D-47E4-A378-C96E1278CA44} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C}
- {54F237D5-A70A-4752-9656-0C70B1A7B047} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
- {FB05AC90-89BA-4F2F-A924-F37875FB547C} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
{E4D9629C-F168-4224-3F51-A5E482FFBC42} = {A689DEF5-D50F-4975-8B72-124C9EB54066}
{6417E941-21BC-467B-A771-0DE389353CE6} = {8B6A8209-894F-4BA1-B880-965FD453982C}
{8EF392D5-1416-45AA-9956-7CBBC3229E8A} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{3C4C0CB4-0C0F-4450-A37B-148C84FF905F} = {A689DEF5-D50F-4975-8B72-124C9EB54066}
- {2F59F3D0-748D-4652-B01E-E0D954756308} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
- {925DD807-B651-475F-9F7C-CBEB974CE43D} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
- {BD43F7C0-396B-4AA1-BAD9-DFDE54D51298} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
- {47BE08A7-5985-410B-9FFC-2264B8EA595F} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
{7B92AF71-6287-4693-9DCB-BD5B6E927E23} = {7CF9789C-F1D3-4D0E-90E5-F1DF67A2753F}
{FF69B927-C545-49AE-8E16-3D14D621AA12} = {7CF9789C-F1D3-4D0E-90E5-F1DF67A2753F}
{4488AD85-1495-4809-9AA4-DDFE0A48527E} = {0CB0B92E-6CFF-4240-80A5-CCAFE75D91E1}
@@ -2630,24 +2501,27 @@ Global
{D0A739B9-3C68-4BA6-A328-41606954B6BD} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{2B888490-D14A-4BCA-AB4B-48676FA93C9B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{57E0455D-D565-44BB-B069-EE1AA20F8337} = {9B9E3891-2366-4253-A952-D08BCEB71098}
- {D35A9F3D-8BB0-496E-BF72-444038A7DEBB} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{52F55355-D120-42AC-8116-8410A7D602FA} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{F1381F98-4D24-409A-A6C5-1C5B1E08BB08} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {48840EDD-24BF-495D-911E-2EB12AE75D3B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{FBCAF3D0-2808-4934-8E96-3F607594517B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{A0CC0258-D18C-4AB3-854F-7101680FC3F9} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{C7A69145-60B6-4882-97D6-A3921DD43978} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{29132311-1848-4FD6-AE0C-4FF841151BD3} = {9B9E3891-2366-4253-A952-D08BCEB71098}
- {9DEFC6B7-845B-4D8F-AFC0-D32BF0032B8C} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
- {40759A76-D0F2-464E-8000-6FF0F5C4BD7C} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
{7D2D3083-71DD-4CC9-8907-39A0D86FB322} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3} = {9B9E3891-2366-4253-A952-D08BCEB71098}
- {F3AC8BC1-27F5-4255-9AFC-04ABFD11683A} = {74487168-7D91-487E-BF93-055F2251461E}
- {4D6FAF79-58B4-482F-9122-0668C346364C} = {74487168-7D91-487E-BF93-055F2251461E}
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}
{638580B0-7910-40EF-B674-DCB34DA308CD} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
+ {CBC4FF2F-92D4-420B-BE21-9FE0B930B04E} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
+ {E1582370-37B3-403C-917F-8209551B1634} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
+ {E2999E4A-9086-401F-898C-AEB0AD38E676} = {9B9E3891-2366-4253-A952-D08BCEB71098}
+ {050CC912-FF49-4A8B-B534-9544017446DD} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
+ {F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE} = {9B9E3891-2366-4253-A952-D08BCEB71098}
+ {CBFD5788-567D-401B-9DFA-74E4224025A0} = {A59C4C0A-64DF-4621-B450-2BA00D6F61E2}
+ {4ADA61C8-D191-428D-9066-EF4F0D86520F} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}
EndGlobalSection
EndGlobal
diff --git a/Avalonia.sln.DotSettings b/Avalonia.sln.DotSettings
index 1fd6f8d092..d61208c358 100644
--- a/Avalonia.sln.DotSettings
+++ b/Avalonia.sln.DotSettings
@@ -1,4 +1,5 @@
+ True
ExplicitlyExcluded
ExplicitlyExcluded
ExplicitlyExcluded
diff --git a/appveyor.yml b/appveyor.yml
index 6b63176a89..5fe05598af 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,35 +1,24 @@
os: Visual Studio 2017
-platform:
-- Any CPU
skip_branch_with_pr: true
configuration:
- Release
environment:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
- NUGET_API_KEY:
- secure: Xv89dlP2MSBZKhl1nrWSxqcDgCXB0HRhOd4SWQ+jRJ7QoLxQel5mLTipXM++J3G5
NUGET_API_URL: https://www.nuget.org/api/v2/package
MYGET_API_KEY:
secure: OtVfyN3ErqQrDTnWH2HDfJDlCiu/i4/X4wFmK3ZXXP7HmCiXYPSbTjMPwwdOxRaK
MYGET_API_URL: https://www.myget.org/F/avalonia-ci/api/v2/package
init:
-- ps: (New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/appveyor/ci/master/scripts/xamarin-vs2017-151-fixed.targets', "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.Targets\ImportAfter\Xamarin.Common.targets")
+- ps: if (Test-Path env:nuget_address) {[System.IO.File]::AppendAllText("C:\Windows\System32\drivers\etc\hosts", "`n$($env:nuget_address)`tapi.nuget.org")}
install:
- - if not exist gtk-sharp-2.12.26.msi appveyor DownloadFile http://download.xamarin.com/GTKforWindows/Windows/gtk-sharp-2.12.26.msi
- - if not exist dotnet-1.0.1.exe appveyor DownloadFile https://go.microsoft.com/fwlink/?linkid=843448 -FileName "dotnet-1.0.1.exe"
- - ps: Start-Process -FilePath "msiexec" -ArgumentList "/i gtk-sharp-2.12.26.msi /quiet /qn /norestart" -Wait
- - ps: Start-Process -FilePath "dotnet-1.0.1.exe" -ArgumentList "/quiet" -Wait
+ - if not exist dotnet-2.0.0.exe appveyor DownloadFile https://download.microsoft.com/download/0/F/D/0FD852A4-7EA1-4E2A-983A-0484AC19B92C/dotnet-sdk-2.0.0-win-x64.exe -FileName "dotnet-2.0.0.exe"
+ - ps: Start-Process -FilePath "dotnet-2.0.0.exe" -ArgumentList "/quiet" -Wait
- cmd: set PATH=%programfiles(x86)%\GtkSharp\2.12\bin\;%PATH%
before_build:
- git submodule update --init
build_script:
-- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration"
-after_build:
-- tools\JetBrains.dotMemoryUnit\tools\dotMemoryUnit.exe -targetExecutable="%xunit20%\xunit.console.x86.exe" -returnTargetExitCode --"tests\Avalonia.LeakTests\bin\Release\Avalonia.LeakTests.dll"
-- "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%"
-- pip install codecov
-- codecov -f "./artifacts/coverage.xml"
+- ps: .\build.ps1 -Target "AppVeyor" -Configuration "$env:configuration"
test: off
artifacts:
@@ -37,5 +26,4 @@ artifacts:
- path: artifacts\zip\*.zip
- path: artifacts\inspectcode.xml
cache:
- - gtk-sharp-2.12.26.msi
- - dotnet-1.0.1.exe
+ - dotnet-2.0.0.exe
diff --git a/build.cake b/build.cake
index b3822271d4..bf3ae41b58 100644
--- a/build.cake
+++ b/build.cake
@@ -2,17 +2,16 @@
// ADDINS
///////////////////////////////////////////////////////////////////////////////
-#addin "nuget:?package=Polly&version=4.2.0"
-#addin "nuget:?package=NuGet.Core&version=2.12.0"
-#tool "nuget:https://dotnet.myget.org/F/nuget-build/?package=NuGet.CommandLine&version=4.3.0-preview1-3980&prerelease"
-#tool "nuget:?package=JetBrains.dotMemoryUnit&version=2.3.20160517.113140"
-#tool "JetBrains.ReSharper.CommandLineTools"
+#addin "nuget:?package=Polly&version=5.3.1"
+#addin "nuget:?package=NuGet.Core&version=2.14.0"
+#tool "nuget:?package=NuGet.CommandLine&version=4.3.0"
+#tool "nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2017.1.20170613.162720"
///////////////////////////////////////////////////////////////////////////////
// TOOLS
///////////////////////////////////////////////////////////////////////////////
-#tool "nuget:?package=xunit.runner.console&version=2.2.0"
-#tool "nuget:?package=OpenCover"
+#tool "nuget:?package=xunit.runner.console&version=2.3.1"
+#tool "nuget:?package=JetBrains.dotMemoryUnit&version=3.0.20171219.105559"
///////////////////////////////////////////////////////////////////////////////
// USINGS
@@ -36,20 +35,31 @@ using NuGet;
// PARAMETERS
//////////////////////////////////////////////////////////////////////
-Parameters parameters = new Parameters(Context);
-Packages packages = new Packages(Context, parameters);
+class AvaloniaBuildData
+{
+ public AvaloniaBuildData(Parameters parameters, Packages packages)
+ {
+ Parameters = parameters;
+ Packages = packages;
+ }
+
+ public Parameters Parameters { get; }
+ public Packages Packages { get; }
+}
///////////////////////////////////////////////////////////////////////////////
// SETUP
///////////////////////////////////////////////////////////////////////////////
-Setup(context =>
+Setup(context =>
{
- Information("Building version {0} of Avalonia ({1}, {2}, {3}) using version {4} of Cake.",
+ var parameters = new Parameters(context);
+ var buildContext = new AvaloniaBuildData(parameters, new Packages(context, parameters));
+
+ Information("Building version {0} of Avalonia ({1}, {2}) using version {3} of Cake.",
parameters.Version,
parameters.Platform,
parameters.Configuration,
- parameters.Target,
typeof(ICakeContext).Assembly.GetName().Version.ToString());
if (parameters.IsRunningOnAppVeyor)
@@ -57,8 +67,7 @@ Setup(context =>
Information("Repository Name: " + BuildSystem.AppVeyor.Environment.Repository.Name);
Information("Repository Branch: " + BuildSystem.AppVeyor.Environment.Repository.Branch);
}
-
- Information("Target: " + parameters.Target);
+ Information("Target:" + context.TargetTask.Name);
Information("Platform: " + parameters.Platform);
Information("Configuration: " + parameters.Configuration);
Information("IsLocalBuild: " + parameters.IsLocalBuild);
@@ -72,13 +81,15 @@ Setup(context =>
Information("IsReleasable: " + parameters.IsReleasable);
Information("IsMyGetRelease: " + parameters.IsMyGetRelease);
Information("IsNuGetRelease: " + parameters.IsNuGetRelease);
+
+ return buildContext;
});
///////////////////////////////////////////////////////////////////////////////
// TEARDOWN
///////////////////////////////////////////////////////////////////////////////
-Teardown(context =>
+Teardown((context, buildContext) =>
{
Information("Finished running tasks.");
});
@@ -88,20 +99,19 @@ Teardown(context =>
///////////////////////////////////////////////////////////////////////////////
Task("Clean")
- .Does(() =>
+ .Does(data =>
{
- CleanDirectories(parameters.BuildDirs);
- CleanDirectory(parameters.ArtifactsDir);
- CleanDirectory(parameters.NugetRoot);
- CleanDirectory(parameters.ZipRoot);
- CleanDirectory(parameters.BinRoot);
- CleanDirectory(parameters.TestsRoot);
+ CleanDirectories(data.Parameters.BuildDirs);
+ CleanDirectory(data.Parameters.ArtifactsDir);
+ CleanDirectory(data.Parameters.NugetRoot);
+ CleanDirectory(data.Parameters.ZipRoot);
+ CleanDirectory(data.Parameters.BinRoot);
});
Task("Restore-NuGet-Packages")
.IsDependentOn("Clean")
- .WithCriteria(parameters.IsRunningOnWindows)
- .Does(() =>
+ .WithCriteria((context, data) => data.Parameters.IsRunningOnWindows)
+ .Does(data =>
{
var maxRetryCount = 5;
var toolTimeout = 2d;
@@ -118,181 +128,162 @@ Task("Restore-NuGet-Packages")
toolTimeout+=0.5;
}})
.Execute(()=> {
- NuGetRestore(parameters.MSBuildSolution, new NuGetRestoreSettings {
- ToolPath = "./tools/NuGet.CommandLine/tools/NuGet.exe",
+ NuGetRestore(data.Parameters.MSBuildSolution, new NuGetRestoreSettings {
ToolTimeout = TimeSpan.FromMinutes(toolTimeout)
});
});
});
-void DotNetCoreBuild()
+void DotNetCoreBuild(Parameters parameters)
{
- DotNetCoreRestore("samples\\ControlCatalog.NetCore");
- DotNetBuild("samples\\ControlCatalog.NetCore");
-}
+ var settings = new DotNetCoreBuildSettings
+ {
+ Configuration = parameters.Configuration,
+ MSBuildSettings = new DotNetCoreMSBuildSettings(),
+ };
-Task("DotNetCoreBuild")
- .IsDependentOn("Clean")
- .Does(() => DotNetCoreBuild());
+ settings.MSBuildSettings.SetConfiguration(parameters.Configuration);
+ settings.MSBuildSettings.WithProperty("Platform", "\"" + parameters.Platform + "\"");
+
+ DotNetCoreBuild(parameters.MSBuildSolution, settings);
+}
Task("Build")
.IsDependentOn("Restore-NuGet-Packages")
- .Does(() =>
+ .Does(data =>
{
- if(parameters.IsRunningOnWindows)
+ if(data.Parameters.IsRunningOnWindows)
{
- MSBuild(parameters.MSBuildSolution, settings => {
- settings.SetConfiguration(parameters.Configuration);
- settings.WithProperty("Platform", "\"" + parameters.Platform + "\"");
- settings.WithProperty("UseRoslynPathHack", "true");
+ MSBuild(data.Parameters.MSBuildSolution, settings => {
+ settings.SetConfiguration(data.Parameters.Configuration);
settings.SetVerbosity(Verbosity.Minimal);
- settings.WithProperty("Windows", "True");
+ settings.WithProperty("Platform", "\"" + data.Parameters.Platform + "\"");
+ settings.WithProperty("UseRoslynPathHack", "true");
settings.UseToolVersion(MSBuildToolVersion.VS2017);
+ settings.WithProperty("Windows", "True");
settings.SetNodeReuse(false);
+ settings.SetMaxCpuCount(0);
});
}
else
{
- DotNetCoreBuild();
+ DotNetCoreBuild(data.Parameters);
}
});
-void RunCoreTest(string dir, Parameters parameters, bool net461Only)
+
+void RunCoreTest(string project, Parameters parameters, bool coreOnly = false)
{
- Information("Running tests from " + dir);
- DotNetCoreRestore(dir);
- var frameworks = new List(){"netcoreapp1.1"};
- if(parameters.IsRunningOnWindows)
- frameworks.Add("net461");
+ if(!project.EndsWith(".csproj"))
+ project = System.IO.Path.Combine(project, System.IO.Path.GetFileName(project)+".csproj");
+ Information("Running tests from " + project);
+ var frameworks = new List(){"netcoreapp2.0"};
foreach(var fw in frameworks)
{
- if(fw != "net461" && net461Only)
+ if(!fw.StartsWith("netcoreapp") && coreOnly)
continue;
Information("Running for " + fw);
- DotNetCoreTest(System.IO.Path.Combine(dir, System.IO.Path.GetFileName(dir)+".csproj"),
+
+ DotNetCoreTest(project,
new DotNetCoreTestSettings {
Configuration = parameters.Configuration,
- Framework = fw
+ Framework = fw,
+ NoBuild = true,
+ NoRestore = true
});
}
}
-Task("Run-Net-Core-Unit-Tests")
- .IsDependentOn("Clean")
- .Does(() => {
- RunCoreTest("./tests/Avalonia.Base.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Controls.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Input.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Layout.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Markup.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Styling.UnitTests", parameters, false);
- RunCoreTest("./tests/Avalonia.Visuals.UnitTests", parameters, false);
+Task("Run-Unit-Tests")
+ .IsDependentOn("Build")
+ .WithCriteria((context, data) => !data.Parameters.SkipTests)
+ .Does(data => {
+ RunCoreTest("./tests/Avalonia.Base.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Controls.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Input.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Layout.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Markup.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Styling.UnitTests", data.Parameters, false);
+ RunCoreTest("./tests/Avalonia.Visuals.UnitTests", data.Parameters, false);
+ if (data.Parameters.IsRunningOnWindows)
+ {
+ RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", data.Parameters, true);
+ }
});
-Task("Run-Unit-Tests")
- .IsDependentOn("Run-Net-Core-Unit-Tests")
+Task("Run-Designer-Tests")
.IsDependentOn("Build")
- .WithCriteria(() => !parameters.SkipTests)
- .Does(() =>
-{
- if(!parameters.IsRunningOnWindows)
- return;
+ .WithCriteria((context, data) => !data.Parameters.SkipTests)
+ .Does(data => {
+ RunCoreTest("./tests/Avalonia.DesignerSupport.Tests", data.Parameters, false);
+ });
- var unitTests = GetDirectories("./tests/Avalonia.*.UnitTests")
- .Select(dir => System.IO.Path.GetFileName(dir.FullPath))
- .Where(name => parameters.IsRunningOnWindows ? true : !(name.IndexOf("Direct2D", StringComparison.OrdinalIgnoreCase) >= 0))
- .Select(name => MakeAbsolute(File("./tests/" + name + "/bin/" + parameters.DirSuffix + "/" + name + ".dll")))
- .ToList();
+Task("Run-Render-Tests")
+ .IsDependentOn("Build")
+ .WithCriteria((context, data) => !data.Parameters.SkipTests && data.Parameters.IsRunningOnWindows)
+ .Does(data => {
+ RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", data.Parameters, true);
+ RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", data.Parameters, true);
+ });
- if (parameters.IsRunningOnWindows)
+Task("Run-Leak-Tests")
+ .WithCriteria((context, data) => !data.Parameters.SkipTests && data.Parameters.IsRunningOnWindows)
+ .IsDependentOn("Build")
+ .Does(() =>
{
- var leakTests = GetFiles("./tests/Avalonia.LeakTests/bin/" + parameters.DirSuffix + "/*.LeakTests.dll");
-
- unitTests.AddRange(leakTests);
- }
-
- var toolPath = (parameters.IsPlatformAnyCPU || parameters.IsPlatformX86) ?
- "./tools/xunit.runner.console/tools/xunit.console.x86.exe" :
- "./tools/xunit.runner.console/tools/xunit.console.exe";
-
- var xUnitSettings = new XUnit2Settings
- {
- ToolPath = toolPath,
- Parallelism = ParallelismOption.None,
- ShadowCopy = false
- };
-
- xUnitSettings.NoAppDomain = !parameters.IsRunningOnWindows;
-
- var openCoverOutput = parameters.ArtifactsDir.GetFilePath(new FilePath("./coverage.xml"));
- var openCoverSettings = new OpenCoverSettings()
- .WithFilter("+[Avalonia.*]* -[*Test*]* -[ControlCatalog*]*")
- .WithFilter("-[Avalonia.*]OmniXaml.* -[Avalonia.*]Glass.*")
- .WithFilter("-[Avalonia.HtmlRenderer]TheArtOfDev.HtmlRenderer.* +[Avalonia.HtmlRenderer]TheArtOfDev.HtmlRenderer.Avalonia.* -[Avalonia.ReactiveUI]*");
-
- openCoverSettings.ReturnTargetCodeOffset = 0;
+ var dotMemoryUnit = Context.Tools.Resolve("dotMemoryUnit.exe");
+ var leakTestsExitCode = StartProcess(dotMemoryUnit, new ProcessSettings
+ {
+ Arguments = new ProcessArgumentBuilder()
+ .Append(Context.Tools.Resolve("xunit.console.x86.exe").FullPath)
+ .Append("--propagate-exit-code")
+ .Append("--")
+ .Append("tests\\Avalonia.LeakTests\\bin\\Release\\net461\\Avalonia.LeakTests.dll"),
+ Timeout = 120000
+ });
- foreach(var test in unitTests.Where(testFile => FileExists(testFile)))
- {
- CopyDirectory(test.GetDirectory(), parameters.TestsRoot);
- }
-
- CopyFile(System.IO.Path.Combine(packages.NugetPackagesDir, "SkiaSharp", packages.SkiaSharpVersion,
- "runtimes", "win7-x86", "native", "libSkiaSharp.dll"),
- System.IO.Path.Combine(parameters.TestsRoot.ToString(), "libSkiaSharp.dll"));
-
- var testsInDirectoryToRun = new List();
- if(parameters.IsRunningOnWindows)
- {
- testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*Tests.dll"));
- }
- else
- {
- testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*.UnitTests.dll"));
- }
+ if (leakTestsExitCode != 0)
+ {
+ throw new Exception("Leak Tests failed");
+ }
+ });
- if(parameters.IsRunningOnWindows)
- {
- OpenCover(context => {
- context.XUnit2(testsInDirectoryToRun, xUnitSettings);
- }, openCoverOutput, openCoverSettings);
- }
- else
- {
- XUnit2(testsInDirectoryToRun, xUnitSettings);
- }
-});
+Task("Run-Tests")
+ .IsDependentOn("Run-Unit-Tests")
+ .IsDependentOn("Run-Render-Tests")
+ .IsDependentOn("Run-Designer-Tests")
+ .IsDependentOn("Run-Leak-Tests");
Task("Copy-Files")
- .IsDependentOn("Run-Unit-Tests")
- .Does(() =>
+ .IsDependentOn("Run-Tests")
+ .Does(data =>
{
- CopyFiles(packages.BinFiles, parameters.BinRoot);
+ CopyFiles(data.Packages.BinFiles, data.Parameters.BinRoot);
});
Task("Zip-Files")
.IsDependentOn("Copy-Files")
- .Does(() =>
+ .Does(data =>
{
- Zip(parameters.BinRoot, parameters.ZipCoreArtifacts);
-
- Zip(parameters.ZipSourceControlCatalogDesktopDirs,
- parameters.ZipTargetControlCatalogDesktopDirs,
- GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") +
- GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") +
- GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") +
- GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") +
- GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
+ Zip(data.Parameters.BinRoot, data.Parameters.ZipCoreArtifacts);
+
+ Zip(data.Parameters.ZipSourceControlCatalogDesktopDirs,
+ data.Parameters.ZipTargetControlCatalogDesktopDirs,
+ GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") +
+ GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") +
+ GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") +
+ GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") +
+ GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
});
Task("Create-NuGet-Packages")
- .IsDependentOn("Run-Unit-Tests")
+ .IsDependentOn("Run-Tests")
.IsDependentOn("Inspect")
- .Does(() =>
+ .Does(data =>
{
- foreach(var nuspec in packages.NuspecNuGetSettings)
+ foreach(var nuspec in data.Packages.NuspecNuGetSettings)
{
NuGetPack(nuspec);
}
@@ -300,12 +291,12 @@ Task("Create-NuGet-Packages")
Task("Publish-MyGet")
.IsDependentOn("Create-NuGet-Packages")
- .WithCriteria(() => !parameters.IsLocalBuild)
- .WithCriteria(() => !parameters.IsPullRequest)
- .WithCriteria(() => parameters.IsMainRepo)
- .WithCriteria(() => parameters.IsMasterBranch)
- .WithCriteria(() => parameters.IsMyGetRelease)
- .Does(() =>
+ .WithCriteria((context, data) => !data.Parameters.IsLocalBuild)
+ .WithCriteria((context, data) => !data.Parameters.IsPullRequest)
+ .WithCriteria((context, data) => data.Parameters.IsMainRepo)
+ .WithCriteria((context, data) => data.Parameters.IsMasterBranch)
+ .WithCriteria((context, data) => data.Parameters.IsMyGetRelease)
+ .Does(data =>
{
var apiKey = EnvironmentVariable("MYGET_API_KEY");
if(string.IsNullOrEmpty(apiKey))
@@ -319,7 +310,7 @@ Task("Publish-MyGet")
throw new InvalidOperationException("Could not resolve MyGet API url.");
}
- foreach(var nupkg in packages.NugetPackages)
+ foreach(var nupkg in data.Packages.NugetPackages)
{
NuGetPush(nupkg, new NuGetPushSettings {
Source = apiUrl,
@@ -334,11 +325,11 @@ Task("Publish-MyGet")
Task("Publish-NuGet")
.IsDependentOn("Create-NuGet-Packages")
- .WithCriteria(() => !parameters.IsLocalBuild)
- .WithCriteria(() => !parameters.IsPullRequest)
- .WithCriteria(() => parameters.IsMainRepo)
- .WithCriteria(() => parameters.IsNuGetRelease)
- .Does(() =>
+ .WithCriteria((context, data) => !data.Parameters.IsLocalBuild)
+ .WithCriteria((context, data) => !data.Parameters.IsPullRequest)
+ .WithCriteria((context, data) => data.Parameters.IsMainRepo)
+ .WithCriteria((context, data) => data.Parameters.IsNuGetRelease)
+ .Does(data =>
{
var apiKey = EnvironmentVariable("NUGET_API_KEY");
if(string.IsNullOrEmpty(apiKey))
@@ -352,7 +343,7 @@ Task("Publish-NuGet")
throw new InvalidOperationException("Could not resolve NuGet API url.");
}
- foreach(var nupkg in packages.NugetPackages)
+ foreach(var nupkg in data.Packages.NugetPackages)
{
NuGetPush(nupkg, new NuGetPushSettings {
ApiKey = apiKey,
@@ -366,18 +357,22 @@ Task("Publish-NuGet")
});
Task("Inspect")
- .WithCriteria(parameters.IsRunningOnWindows)
+ .WithCriteria((context, data) => data.Parameters.IsRunningOnWindows)
.IsDependentOn("Restore-NuGet-Packages")
.Does(() =>
{
var badIssues = new []{"PossibleNullReferenceException"};
var whitelist = new []{"tests", "src\\android", "src\\ios",
- "src\\windows\\avalonia.designer", "src\\avalonia.htmlrenderer\\external"};
+ "src\\markup\\avalonia.markup.xaml\\portablexaml\\portable.xaml.github"};
Information("Running code inspections");
-
- StartProcess("tools\\JetBrains.ReSharper.CommandLineTools\\tools\\inspectcode.exe",
- new ProcessSettings{ Arguments = "--output=artifacts\\inspectcode.xml --profile=Avalonia.sln.DotSettings Avalonia.sln" });
+ var exitCode = StartProcess(Context.Tools.Resolve("inspectcode.exe"),
+ new ProcessSettings
+ {
+ Arguments = "--output=artifacts\\inspectcode.xml --profile=Avalonia.sln.DotSettings Avalonia.sln",
+ RedirectStandardOutput = true
+ });
+
Information("Analyzing report");
var doc = XDocument.Parse(System.IO.File.ReadAllText("artifacts\\inspectcode.xml"));
var failBuild = false;
@@ -405,23 +400,23 @@ Task("Inspect")
Task("Package")
.IsDependentOn("Create-NuGet-Packages");
-Task("Default").Does(() =>
-{
- if(parameters.IsRunningOnWindows)
- RunTarget("Package");
- else
- RunTarget("Run-Net-Core-Unit-Tests");
-});
Task("AppVeyor")
.IsDependentOn("Zip-Files")
.IsDependentOn("Publish-MyGet")
.IsDependentOn("Publish-NuGet");
Task("Travis")
- .IsDependentOn("Run-Net-Core-Unit-Tests");
+ .IsDependentOn("Run-Tests");
///////////////////////////////////////////////////////////////////////////////
// EXECUTE
///////////////////////////////////////////////////////////////////////////////
-RunTarget(parameters.Target);
+var target = Context.Argument("target", "Default");
+
+if (target == "Default")
+{
+ target = Context.IsRunningOnWindows() ? "Package" : "Run-Tests";
+}
+
+RunTarget(target);
diff --git a/build.ps1 b/build.ps1
index 0c5ab81334..46696db2b2 100644
--- a/build.ps1
+++ b/build.ps1
@@ -46,7 +46,7 @@ http://cakebuild.net
Param(
[string]$Script = "build.cake",
[string]$Target = "Default",
- [ValidateSet("Any CPU", "x86", "x64", "Mono", "iPhone")]
+ [ValidateSet("Any CPU", "x86", "x64", "NetCoreOnly", "iPhone")]
[string]$Platform = "Any CPU",
[ValidateSet("Release", "Debug")]
[string]$Configuration = "Release",
diff --git a/build/Base.props b/build/Base.props
new file mode 100644
index 0000000000..78930156e7
--- /dev/null
+++ b/build/Base.props
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/build/Binding.props b/build/Binding.props
new file mode 100644
index 0000000000..a512ee1d9c
--- /dev/null
+++ b/build/Binding.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/build/EmbedXaml.props b/build/EmbedXaml.props
new file mode 100644
index 0000000000..219ffb2e42
--- /dev/null
+++ b/build/EmbedXaml.props
@@ -0,0 +1,11 @@
+
+
+
+ %(Filename)
+
+
+ Designer
+
+
+
\ No newline at end of file
diff --git a/build/JetBrains.dotMemoryUnit.props b/build/JetBrains.dotMemoryUnit.props
index b4cf4def5b..1713dead68 100644
--- a/build/JetBrains.dotMemoryUnit.props
+++ b/build/JetBrains.dotMemoryUnit.props
@@ -1,5 +1,5 @@
-
+
diff --git a/build/Magick.NET-Q16-AnyCPU.props b/build/Magick.NET-Q16-AnyCPU.props
index ec747a17d8..4e600a1c11 100644
--- a/build/Magick.NET-Q16-AnyCPU.props
+++ b/build/Magick.NET-Q16-AnyCPU.props
@@ -1,5 +1,5 @@
-
+
diff --git a/build/Markup.props b/build/Markup.props
index 36c4cb28d8..5be0cfbf0c 100644
--- a/build/Markup.props
+++ b/build/Markup.props
@@ -5,5 +5,10 @@
+
+
+
+
+
diff --git a/build/MonoMac.props b/build/MonoMac.props
new file mode 100644
index 0000000000..5cf19ef503
--- /dev/null
+++ b/build/MonoMac.props
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/Moq.props b/build/Moq.props
index 55242d922e..7de9b6b6ba 100644
--- a/build/Moq.props
+++ b/build/Moq.props
@@ -1,5 +1,5 @@
-
+
diff --git a/build/NetCore.props b/build/NetCore.props
index cebb02c7f5..b9cde28015 100644
--- a/build/NetCore.props
+++ b/build/NetCore.props
@@ -1,6 +1,4 @@
-
-
diff --git a/build/NetFX.props b/build/NetFX.props
new file mode 100644
index 0000000000..d8b2daf13a
--- /dev/null
+++ b/build/NetFX.props
@@ -0,0 +1,6 @@
+
+
+ /usr/lib/mono/4.6.1-api
+ /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.6.1-api
+
+
diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props
new file mode 100644
index 0000000000..11afefa8ad
--- /dev/null
+++ b/build/ReactiveUI.props
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/Rx.props b/build/Rx.props
index 5d74a6b214..7078e31195 100644
--- a/build/Rx.props
+++ b/build/Rx.props
@@ -1,11 +1,9 @@
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/build/SampleApp.props b/build/SampleApp.props
new file mode 100644
index 0000000000..3b538e4029
--- /dev/null
+++ b/build/SampleApp.props
@@ -0,0 +1,13 @@
+
+
+ WinExe
+
+
+
+
+
+
+
+
+
diff --git a/build/Serilog.Sinks.Trace.props b/build/Serilog.Sinks.Trace.props
deleted file mode 100644
index ef79fd7669..0000000000
--- a/build/Serilog.Sinks.Trace.props
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/build/Serilog.props b/build/Serilog.props
index e9bd39f6af..a814cf998d 100644
--- a/build/Serilog.props
+++ b/build/Serilog.props
@@ -1,5 +1,7 @@
-
+
+
+
diff --git a/build/SharedVersion.props b/build/SharedVersion.props
new file mode 100644
index 0000000000..351583a106
--- /dev/null
+++ b/build/SharedVersion.props
@@ -0,0 +1,14 @@
+
+
+ Avalonia
+ 0.6.2
+ Copyright 2016 © The AvaloniaUI Project
+ https://github.com/AvaloniaUI/Avalonia/blob/master/licence.md
+ https://github.com/AvaloniaUI/Avalonia/
+ https://github.com/AvaloniaUI/Avalonia/
+ true
+ CS1591
+ latest
+
+
\ No newline at end of file
diff --git a/build/SharpDX.props b/build/SharpDX.props
index e381bc03e6..69aa817a01 100644
--- a/build/SharpDX.props
+++ b/build/SharpDX.props
@@ -1,8 +1,9 @@
-
-
-
-
+
+
+
+
+
diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props
index 77407f9996..04e8a3ad4f 100644
--- a/build/SkiaSharp.props
+++ b/build/SkiaSharp.props
@@ -1,6 +1,6 @@
-
+
diff --git a/build/SourceLink.props b/build/SourceLink.props
new file mode 100644
index 0000000000..0c9b6a34f8
--- /dev/null
+++ b/build/SourceLink.props
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/build/Splat.props b/build/Splat.props
deleted file mode 100644
index bc3367be01..0000000000
--- a/build/Splat.props
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/build/System.Drawing.Common.props b/build/System.Drawing.Common.props
new file mode 100644
index 0000000000..a568152bbd
--- /dev/null
+++ b/build/System.Drawing.Common.props
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/UnitTests.NetCore.targets b/build/UnitTests.NetCore.targets
index a8886fe028..42da8e4ab1 100644
--- a/build/UnitTests.NetCore.targets
+++ b/build/UnitTests.NetCore.targets
@@ -3,27 +3,7 @@
false
true
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- MinimumRecommendedRules.ruleset
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- MinimumRecommendedRules.ruleset
-
-
\ No newline at end of file
diff --git a/build/XUnit.props b/build/XUnit.props
index 27e0afc987..079565d184 100644
--- a/build/XUnit.props
+++ b/build/XUnit.props
@@ -1,15 +1,14 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/cake.config b/cake.config
new file mode 100644
index 0000000000..8089cd4084
--- /dev/null
+++ b/cake.config
@@ -0,0 +1,15 @@
+; This is the default configuration file for Cake.
+; This file was downloaded from https://github.com/cake-build/resources
+
+[Nuget]
+Source=https://api.nuget.org/v3/index.json
+UseInProcessClient=true
+LoadDependencies=false
+
+[Paths]
+Tools=./tools
+Addins=./tools/Addins
+Modules=./tools/Modules
+
+[Settings]
+SkipVerification=false
diff --git a/docs/.gitignore b/docs/.gitignore
deleted file mode 100644
index 8782b2d294..0000000000
--- a/docs/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-#docfx
-_site
-api
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index c65b576bfa..0000000000
--- a/docs/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Avalonia Documentation
-
-* [API Reference](http://avalonia.github.io/)
-
-## Building
-
-Download and unzip `docfx.zip` into `Documentation` folder from [DocFX project site](https://github.com/dotnet/docfx/releases).
-
-**Step 1.** To create `_site` documentation folder run build script
-
-```
-build.cmd
-```
-
-**Step 2.** To browse `_site` documentation folder run serve script
-
-```
-serve.cmd
-```
-
-And you can view the generated website in your browser `http://localhost:8080`.
diff --git a/docs/build.cmd b/docs/build.cmd
deleted file mode 100644
index b11ad76376..0000000000
--- a/docs/build.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-docfx metadata
-docfx build
diff --git a/docs/docfx.json b/docs/docfx.json
deleted file mode 100644
index d49ee066ed..0000000000
--- a/docs/docfx.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "metadata": [
- {
- "src": [
- {
- "files": [
- "/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj",
- "/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj",
- "/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj",
- "/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj",
- "/src/Avalonia.Animation/Avalonia.Animation.csproj",
- "/src/Avalonia.Application/Avalonia.Application.csproj",
- "/src/Avalonia.Base/Avalonia.Base.csproj",
- "/src/Avalonia.Controls/Avalonia.Controls.csproj",
- "/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj",
- "/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj",
- "/src/Avalonia.Input/Avalonia.Input.csproj",
- "/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj",
- "/src/Avalonia.Layout/Avalonia.Layout.csproj",
- "/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj",
- "/src/Avalonia.Visuals/Avalonia.Visuals.csproj",
- "/src/Avalonia.Styling/Avalonia.Styling.csproj",
- "/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj",
- "/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj",
- "/src/Windows/Avalonia.Designer/Avalonia.Designer.csproj",
- "/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj",
- "/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj",
- ],
- "exclude": [ "**/bin/**", "**/obj/**" ],
- "cwd": ".."
- }
- ],
- "dest": "api"
- },
- ],
- "build": {
- "content":
- [
- {
- "files": ["**/*.yml", "index.md", "tutorial/*.md", "guidelines/*.md", "spec/*.md"],
- }
- ],
- "resource": [
- {
- "files": ["images/**", "tutorial/images/**", "guidelines/images/**", "spec/images/**"]
- }
- ],
- "overwrite": "apidoc/*.md",
- "globalMetadata": {
- "_appTitle": "Avalonia Website"
- },
- "dest": "_site",
- "template": [ "default", "template"]
- }
-}
diff --git a/docs/guidelines/build.md b/docs/guidelines/build.md
deleted file mode 100644
index 822496814b..0000000000
--- a/docs/guidelines/build.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# Building Avalonia
-
-## Windows
-
-Avalonia requires at least Visual Studio 2017 to build on Windows.
-
-### Install GTK Sharp
-
-For the moment under windows, you must have [gtk-sharp](http://www.mono-project.com/download/#download-win)
-installed. Note that after installing the package your machine may require a restart before GTK# is
-added to your path. We hope to remove or make this dependency optional at some point in the future.
-
-### Clone the Avalonia repository
-
-```
-git clone https://github.com/AvaloniaUI/Avalonia.git
-git submodule update --init
-```
-
-### Open in Visual Studio
-
-Open the `Avalonia.sln` solution in Visual Studio 2015 or newer. The free Visual Studio Community
-edition works fine. Run the `Samples\ControlCatalog.Desktop` project to see the sample application.
-
-## Linux
-
-### Install the latest version of Mono
-
-To build Avalonia under Linux, you need to have a recent version of Mono installed. Mono is a cross-
-platform, open source .Net platform. There is a very good chance that the version of Mono that came
-with your Linux distribution is too old, so you want to install a more up-to-date version. The most
-convenient way to to this is through your package manager. The Mono project has great [installation
-instructions for many popular Linux distros](http://www.mono-project.com/docs/getting-started/install/linux).
-
-This will make the most up-to-date Mono release available through your package manager, and offer
-you updates as they become available.
-
-Once you have your package manager configured for the Mono repository, install the `mono-devel`
-package, for example on ubuntu:
-
-```
-sudo apt-get install mono-devel
-```
-
-Once installed, check the version of mono to ensure it's at least 4.4.2:
-
-```
-mono --version
-```
-
-### Clone the Avalonia repository
-
-```
-git clone https://github.com/AvaloniaUI/Avalonia.git
-git submodule update --init
-```
-
-### Restore nuget packages
-
-```
-cd Avalonia
-mkdir -p .nuget
-wget -O .nuget/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
-mono .nuget/nuget.exe restore Avalonia.sln
-```
-
-### Build and Run Avalonia
-
-To build Avalonia in the `Debug` configuration:
-
-```
-xbuild /p:Platform=Mono /p:Configuration=Debug Avalonia.sln
-```
-
-You should now be able to run the ControlCatalog.Desktop sample:
-
-```
-mono ./samples/ControlCatalog.Desktop/bin/Debug/ControlCatalog.Desktop.exe
-```
-
-### Building Avalonia in MonoDevelop
-
-Unless you have a very current version of monodevelop (6.1.x or newer), it is necessary to manually
-restore the Nuget depdendencies as [mentioned above](#restore-nuget-packages). You must then
-disable MonoDevelop's inbuilt NuGet package manager add-in by going to `Tools -> Add-in Manager` or
-it will complain that a newer version of NuGet is needed.
-
-Finally, select the `Debug | Mono` or `Release | Mono` build configuration and you should be good to
-go!
diff --git a/docs/guidelines/contributing.md b/docs/guidelines/contributing.md
deleted file mode 100644
index 771b8f49f2..0000000000
--- a/docs/guidelines/contributing.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Contributing #
-
-## Before You Start ##
-
-Drop into our [gitter chat room](https://gitter.im/Avalonia/Avalonia) and let us know what you're thinking of doing. We might be able to give you guidance or let you know if someone else is already working on the feature.
-
-## Style ##
-
-The codebase uses [.net core](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) coding style.
-
-Try to keep lines of code around 100 characters in length or less, though this is not a hard limit.
-If you're a few characters over then don't worry too much.
-
-**DO NOT USE #REGIONS** full stop.
-
-## Pull requests ##
-
-A single pull request should be submitted for each change. If you're making more than one change,
-please submit separate pull requests for each change for easy review. Rebase your changes to make
-sense, so a history that looks like:
-
-* Add class A
-* Feature A didn't set Foo when Bar was set
-* Fix spacing
-* Add class B
-* Sort using statements
-
-Should be rebased to read:
-
-* Add class A
-* Add class B
-
-Again, this makes review much easier.
-
-Please try not to submit pull requests that don't add new features (e.g. moving stuff around)
-unless you see something that is obviously wrong or that could be written in a more terse or
-idiomatic style. It takes time to review each pull request - time that I'd prefer to spend writing
-new features!
-
-Prefer terseness to verbosity but don't try to be too clever.
-
-## Tests ##
-
-There are two types of tests currently in the codebase; unit tests and render tests.
-
-Unit tests should be contained in a class name that mirrors the class being tested with the suffix
--Tests, e.g.
-
- Avalonia.Controls.UnitTests.Presenters.TextPresenterTests
-
-Where Avalonia.Controls.UnitTests is the name of the project.
-
-Unit test methods should be named in a sentence style, separated by underscores, that describes in
-English what the test is testing, e.g.
-
- void Calling_Foo_Should_Increment_Bar()
-
-Render tests should describe what the produced image is:
-
- void Rectangle_2px_Stroke_Filled()
diff --git a/docs/guidelines/toc.yml b/docs/guidelines/toc.yml
deleted file mode 100644
index 25bfbbf6bf..0000000000
--- a/docs/guidelines/toc.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-- name: Building Avalonia
- href: build.md
-- name: Contributing
- href: contributing.md
\ No newline at end of file
diff --git a/docs/images/avalonia-video.png b/docs/images/avalonia-video.png
deleted file mode 100644
index 2af3fd4c91..0000000000
Binary files a/docs/images/avalonia-video.png and /dev/null differ
diff --git a/docs/images/cross-platform.png b/docs/images/cross-platform.png
deleted file mode 100644
index 70ded84bf8..0000000000
Binary files a/docs/images/cross-platform.png and /dev/null differ
diff --git a/docs/images/hello-world-xaml.png b/docs/images/hello-world-xaml.png
deleted file mode 100644
index 0a3ecbf91f..0000000000
Binary files a/docs/images/hello-world-xaml.png and /dev/null differ
diff --git a/docs/images/inspection-support.png b/docs/images/inspection-support.png
deleted file mode 100644
index 849c590cf5..0000000000
Binary files a/docs/images/inspection-support.png and /dev/null differ
diff --git a/docs/images/screen.png b/docs/images/screen.png
deleted file mode 100644
index 3214a44267..0000000000
Binary files a/docs/images/screen.png and /dev/null differ
diff --git a/docs/index.md b/docs/index.md
deleted file mode 100644
index 37d95b203d..0000000000
--- a/docs/index.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# The Avalonia UI Framework
-
-Cross platform .NET UI Framework with bindings and XAML
-
-## Current status
-
-We're pleased to announce that Avalonia is now in alpha!
-
-What does alpha mean? Well, it means that it's now at a stage where you can have a play and hopefully create simple applications. There's now a Visual Studio Extension containing project and item templates that will help you get started, and there's an initial complement of controls. There's still a lot missing, and you will find bugs, and the API will change, but this represents the first time where we've made it somewhat easy to have a play and experiment with the framework.
-
-## How do I try it out
-
-The easiest way to try out Avalonia is to install the [Visual Studio Extension](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio).
-
-This will add a Avalonia project template and a Window template to the standard Visual Studo "Add" dialog (yes, icons still to come :) ):
-
-
-
-Creating a Avalonia Project will give you a simple project with a single XAML window. We even have a simple designer:
-
-
-
-You can also find the project [on GitHub](https://github.com/AvaloniaUI/Avalonia/)
-
-## News
-
-You can read news about Avalonia on [Groky's blog](http://grokys.github.io/)
-
-## Cross Platform
-
-Fow now we can run on Windows, Linux and Mac.
-
-
-
-## Inspection support
-
-
diff --git a/docs/intro.md b/docs/intro.md
deleted file mode 100644
index 1303815736..0000000000
--- a/docs/intro.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Avalonia #
-
-...a next generation WPF?
-
-## Background ##
-
-As everyone who's involved in client-side .NET development knows, the past half decade have been a
-very sad time. Where WPF started off as a game-changer, it now seems to have been all but forgotten.
-WinRT came along and took many of the lessons of WPF but it's currently not usable on the desktop.
-
-After a few months of trying to reverse-engineer WPF with the [Avalonia Project](https://github.com/grokys/Avalonia) I began to come to the same conclusion that I imagine Microsoft
-came to internally: for all its groundbreaking-ness at the time, WPF at its core is a dated mess,
-written for .NET 1 and barely updated to even bring it up-to-date with .NET 2 features such as
-generics.
-
-So I began to think: what if we were to start anew with modern C# features such as *(gasp)*
-Generics, Observables, async, etc etc. The result of that thought is Avalonia
-(https://github.com/grokys/Avalonia).
-
-##### DISCLAIMER
-This is really **early development pre-alpha-alpha** stuff. Everything is subject to
-change, I'm not even sure if the performance characteristics of Rx make Observables suitable for
-binding throughout a framework. *I'm writing this only to see if the idea of exploring these ideas
-appeals to anyone else.*
-
-So what can it do so far? Not a whole lot right now. Here's the demo application:
-
-
-
-## AvaloniaProperty ##
-
-AvaloniaProperty is the equivalent of WPF's DependencyProperty.
-
-I'm not a big fan of DependencyProperty. My first thought was that I'd rather not have something
-like this at all and just use basic INPC but DPs give you two important features: Inheritance and
-Attached Properties. So the challenge became to improve it.
-
-Declaring a DependencyProperty in WPF looks something like this:
-
-```csharp
-public static readonly DependencyProperty PropertyDeclaration =
-DependencyProperty.Register(
- "PropertyName",
- typeof(PropertyType),
- typeof(OwnerClass),
- new FrameworkPropertyMetadata(
- default(PropertyType),
- FrameworkPropertyMetadataOptions.Inherits));
-
-public PropertyType PropertyName
-{
- get { return (PropertyType)this.GetValue(PropertyDeclaration); }
- set { this.SetValue(PropertyDeclaration, value); }
-}
-```
-
-Eww! All that just to declare a single property. There's **A LOT** of boilerplate there. With
-generics and default parameters we can at least make it look a bit nicer:
-
-```csharp
-public static readonly AvaloniaProperty PropertyDeclaration =
-AvaloniaProperty.Register("PropertyName", inherits: true);
-
-public PropertyType PropertyName
-{
- get { return this.GetValue(PropertyDeclaration); }
- set { this.SetValue(PropertyDeclaration, value); }
-}
-```
-
-What can we see here?
-
-- AvaloniaProperties are typed, so no more having to cast in the getter.
-- We pass the property type and owner class as a generic type to `Register()` so we don't have to
-write `typeof()` twice.
-- We used default parameter values in `Register()` so that defaults don't have to be restated.
-
-*(ASIDE: maybe Roslyn will give us [var for fields](http://blogs.msdn.com/b/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx)...)? Lets hope...*
-
-## Binding
-
-Binding in Avalonia uses Reactive Extensions' [IObservable](http://msdn.microsoft.com/library/dd990377.aspx). To bind an IObservable to a property, use the `Bind()` method:
-
-```csharp
-control.Bind(BorderProperty, someObject.SomeObservable());
-```
-
-Note that because AvaloniaProperty is typed, we can check that the observable is of the correct type.
-
-To get the value of a property as an observable, call `GetObservable()`:
-
-```csharp
-var observable = control.GetObservable(Control.FooProperty);
-```
-
-## Attached Properties and Binding Pt 2
-
-Attached properties are set just like in WPF, using `SetValue()`. But what about the `[]` operator, also called [index initializer](https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status&referringTitle=Home) (see *C# feature descriptions*)? The upcoming version of C# will provide a new feature that allows us to use `[]` array subscripts in object initializers. An example on how to make use of it will look like this:
-
-```csharp
-var control = new Control
-{
- Property1 = "Foo",
- [Attached.Property] = "Bar",
-}
-```
-
-
-Nice... Lets take this further:
-
-```csharp
-var control = new Control
-{
- Property1 = "Foo",
- [Attached.Property] = "Bar",
- [!Property2] = something.SomeObservable,
-}
-```
-
-Yep, by putting a bang in front of the property name you can **bind** to a property (attached or
-otherwise) from the object initializer.
-
-Binding to a property on another control? Easy:
-
-```csharp
-var control = new Control
-{
- Property1 = "Foo",
- [Attached.Property] = "Bar",
- [!Property2] = anotherControl[!Property1],
-}
-```
-
-Two way binding? Just add two bangs:
-
-```csharp
-var control = new Control
-{
- Property1 = "Foo",
- [Attached.Property] = "Bar",
- [!!Property2] = anotherControl[!!Property1],
-}
-```
-
-## Visual and Logical trees
-
-Avalonia uses the same visual/logical tree separation that is used by WPF (and to some extent HTML
-is moving in this direction with the Shadow DOM). The manner of accessing the two trees is slightly
-different however. Rather than using Visual/LogicalTreeHelper you can cast any control to an
-`IVisual` or `ILogical` to reveal the tree operations. There's also the VisualExtensions class which
-provides some useful extension methods such as `GetVisualAncestor(this IVisual visual)` or
-`GetVisualAt(this IVisual visual, Point p)`.
-
-Again like WPF, Controls are lookless with the visual appearance being defined by the Template
-property, which is determined by...
-
-## Styles
-
-Styles in Avalonia diverge from styles in WPF quite a lot, and move towards a more CSS-like system.
-It's probably easiest to show in an example. Here is the default style for the CheckBox control:
-
-```csharp
-new Style(x => x.OfType())
-{
- Setters = new[]
- {
- new Setter(Button.TemplateProperty, ControlTemplate.Create(this.Template))
- }
-};
-
-new Style(x => x.OfType().Template().Id("checkMark"))
-{
- Setters = new[]
- {
- new Setter(Shape.IsVisibleProperty, false)
- }
-};
-
-new Style(x => x.OfType().Class(":checked").Template().Id("checkMark"))
-{
- Setters = new[]
- {
- new Setter(Shape.IsVisibleProperty, true)
- }
-};
-```
-
-Let's see what's happening here:
-
-```csharp
-new Style(x => x.OfType())
-```
-
-The constructor for the Style class defines the selector. Here we're saying "*this style applies to
-all controls in the the visual tree of type CheckBox*". A more complex selector:
-
-```csharp
-new Style(x => x.OfType().Class(":checked").Template().Id("checkMark"))
-```
-
-This selector matches *"all controls with Id == "checkMark" in the template of a CheckBox with the
-class `:checked`"*. Each control has an Id property, and Ids in templates are considered to be in a
-separate namespace.
-
-Inside the Style class we then have a collection of setters similar to WPF.
-
-This system means that there's no more need for WPF's Triggers - the styling works with classes
-(which are arbitrary strings) similar to CSS. Similar to CSS, classes with a leading `:` are set
-by the control itself in response to events like `mouseover` and `click`.
-
-Similar to WPF, styles can be defined on each control, with a global application style collection
-at the root. This means that different subsections of the visual tree can have a completely
-different look-and-feel.
-
-## XAML
-
-As you can see, all of the examples here are defined in code - but a XAML implementation is being
-worked on. The current progress can be reviewed at [https://github.com/SuperJMN/Avalonia](https://github.com/SuperJMN/Avalonia).
-
-## That's all for now
-
-There's a lot more to see, and even more to do, so if you want to have a play you can get the code
-here: [https://github.com/grokys/Avalonia](https://github.com/grokys/Avalonia)
-
-Feedback is always welcome!
diff --git a/docs/serve.cmd b/docs/serve.cmd
deleted file mode 100644
index 8d19925938..0000000000
--- a/docs/serve.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-docfx serve _site
diff --git a/docs/spec/architecture.md b/docs/spec/architecture.md
deleted file mode 100644
index 1245bdbfd4..0000000000
--- a/docs/spec/architecture.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# Avalonia Architecture
-
-At the highest level, avalonia is split up into a "core" and two "subsystems".
-
-* The core is a set of Portable Class Libraries that can run anywhere.
-* The Windowing subsystem is responsible for creating windows, handling input and scheduling timers.
-* The Rendering subsystem is responsible for drawing.
-
-There are currently two Windowing and two Rendering subsystems:
-
-## Windowing Subsystems
-
-* Avalonia.Win32 uses the Win32 API (this also works on 64-bit windows).
-* Avalonia.Gtk uses the GTK2 toolkit and can be run on both Windows and *nix.
-
-## Rendering Subsystems
-
-* Avalonia.Direct2D1 uses Microsoft's Direct2D1 API.
-* Avalonia.Cairo uses Cairo for rendering and Pango for text layout.
-
-## Core
-
-The Avalonia core is split up into several assemblies. Note that they're not separated like this
-because you will want to use them separately; they are separate to maintain separation of concerns
-and a layered architecture. It is fully possible that they will be ILMerged into a single assembly
-for distribution.
-
-The assemblies are as follows, from lowest to highest level:
-
-### Avalonia.Base
-
-The main classes in this assembly are `AvaloniaObject` and `AvaloniaProperty`.
-
-These are Avalonia's versions of XAML's `DependencyObject` and `DependencyProperty`. It also
-defines a `AvaloniaDispatcher` which is - surprise - our version of XAML's `Dispatcher`.
-
-### Avalonia.Animation
-
-The main class in the assembly is `Animatable`.
-
-Allows AvaloniaProperties to be animated and provides various utilities related to animation.
-
-### Avalonia.Visuals
-
-The main class in this assembly is `Visual` and its interface `IVisual`.
-
-Defines the "Visual" layer which is a 2D scene graph, with each node being a `IVisual`/`Visual`.
-Also defines primitives such as `Point`/`Rect`/`Matrix`, plus `Geometry`, `Bitmap`, `Brush` and
-whatever else you might need in order to draw to the screen.
-
-### Avalonia.Styling
-
-The main interface in this assembly is `IStyleable`.
-
-Defines a CSS-like system for styling controls.
-
-### Avalonia.Layout
-
-The main class in this assembly is `Layoutable`.
-
-Defines a XAML-like layout system using `Measure` and `Arrange`. Also defines `LayoutManager` which
-carries out the actual layout.
-
-### Avalonia.Interactivity
-
-The main class in this assembly is `Interactive`.
-
-Defines a system of routed events similar to those found in XAML.
-
-### Avalonia.Input
-
-The main class in this assembly is `InputElement`.
-
-Handles input from various devices such as `MouseDevice` and `KeyboardDevice`, together with
-`FocusManager` for tracking input focus. Input is sent from the windowing subsystem to
-`InputManager` in the form of "Raw" events which are then translated into routed events for the
-controls.
-
-### Avalonia.Controls
-
-There are many important classes in this assembly, but the root of them is `Control`.
-
-Finally defines the actual controls. The `Control` class is analogous to WPF's `FrameworkElement`
-whereas the `TemplatedControl` class is our version of WPF's `Control`. This is also where you'll
-find all of the basic controls you'd expect.
-
-### Avalonia.Themes.Default
-
-Defines a default theme using a set of styles and control templates.
-
-### Avalonia.Application
-
-The main class in this assembly is `Application`.
-
-This ties everything together, setting up the service locator, defining the default theme etc.
-
-### Avalonia.Diagnostics
-
-Adds utilities for debugging avalonia applications, such as `DevTools` which provides a Snoop/WPF
-Inspector/Browser DevTools window for inspecting the state of the application.
-
diff --git a/docs/spec/binding-from-code.md b/docs/spec/binding-from-code.md
deleted file mode 100644
index 76f3aa55c9..0000000000
--- a/docs/spec/binding-from-code.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# Binding from Code
-
-Avalonia binding from code works somewhat differently to WPF/UWP. At the low level, Avalonia's
-binding system is based on Reactive Extensions' `IObservable` which is then built upon by XAML
-bindings (which can also be instantiated in code).
-
-## Binding to an observable
-
-You can bind a property to an observable using the `AvaloniaObject.Bind` method:
-
-```csharp
-// We use an Rx Subject here so we can push new values using OnNext
-var source = new Subject();
-var textBlock = new TextBlock();
-
-// Bind TextBlock.Text to source
-textBlock.Bind(TextBlock.TextProperty, source);
-
-// Set textBlock.Text to "hello"
-source.OnNext("hello");
-// Set textBlock.Text to "world!"
-source.OnNext("world!");
-```
-
-## Binding priorities
-
-You can also pass a priority to a binding. *Note: Priorities only apply to styled properties: they*
-*are ignored for direct properties.*
-
-The priority is passed using the `BindingPriority` enum, which looks like this:
-
-```csharp
-///
-/// The priority of a binding.
-///
-public enum BindingPriority
-{
- ///
- /// A value that comes from an animation.
- ///
- Animation = -1,
-
- ///
- /// A local value: this is the default.
- ///
- LocalValue = 0,
-
- ///
- /// A triggered style binding.
- ///
- ///
- /// A style trigger is a selector such as .class which overrides a
- /// binding. In this way, a basic control can have
- /// for example a Background from the templated parent which changes when the
- /// control has the :pointerover class.
- ///
- StyleTrigger,
-
- ///
- /// A binding to a property on the templated parent.
- ///
- TemplatedParent,
-
- ///
- /// A style binding.
- ///
- Style,
-
- ///
- /// The binding is uninitialized.
- ///
- Unset = int.MaxValue,
-}
-```
-
-Bindings with a priority with a smaller number take precedence over bindings with a higher value
-priority, and bindings added more recently take precedence over other bindings with the same
-priority. Whenever the binding produces `AvaloniaProperty.UnsetValue` then the next binding in the
-priority order is selected.
-
-## Setting a binding in an object initializer
-
-It is often useful to set up bindings in object initializers. You can do this using the indexer:
-
-```csharp
-var source = new Subject();
-var textBlock = new TextBlock
-{
- Foreground = Brushes.Red,
- MaxWidth = 200,
- [!TextBlock.TextProperty] = source.ToBinding(),
-};
-```
-
-Using this method you can also easily bind a property on one control to a property on another:
-
-```csharp
-var textBlock1 = new TextBlock();
-var textBlock2 = new TextBlock
-{
- Foreground = Brushes.Red,
- MaxWidth = 200,
- [!TextBlock.TextProperty] = textBlock1[!TextBlock.TextProperty],
-};
-```
-
-Of course the indexer can be used outside object initializers too:
-
-```csharp
-textBlock2[!TextBlock.TextProperty] = textBlock1[!TextBlock.TextProperty];
-```
-
-# Transforming binding values
-
-Because we're working with observables, we can easily transform the values we're binding!
-
-```csharp
-var source = new Subject();
-var textBlock = new TextBlock
-{
- Foreground = Brushes.Red,
- MaxWidth = 200,
- [!TextBlock.TextProperty] = source.Select(x => "Hello " + x).ToBinding(),
-};
-```
-
-# Using XAML bindings from code
-
-Sometimes when you want the additional features that XAML bindings provide, it's easier to use XAML bindings from code. For example, using only observables you could bind to a property on `DataContext` like this:
-
-```csharp
-var textBlock = new TextBlock();
-var viewModelProperty = textBlock.GetObservable(TextBlock.DataContext)
- .OfType()
- .Select(x => x?.Name);
-textBlock.Bind(TextBlock, viewModelProperty);
-```
-
-However, it might be preferable to use a XAML binding in this case:
-
-```csharp
-var textBlock = new TextBlock
-{
- [!TextBlock.TextProperty] = new Binding("Name")
-};
-```
-
-By using XAML binding objects, you get access to binding to named controls and [all the other features that XAML bindings bring](binding-from.xaml.md):
-
-```csharp
-var textBlock = new TextBlock
-{
- [!TextBlock.TextProperty] = new Binding("Text") { ElementName = "other" }
-};
-```
-
diff --git a/docs/spec/binding-from-xaml.md b/docs/spec/binding-from-xaml.md
deleted file mode 100644
index 143e3627c8..0000000000
--- a/docs/spec/binding-from-xaml.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# Binding from XAML
-
-Binding from XAML works on the whole the same as in other XAML frameworks: you use the `{Binding}`
-markup extension. Avalonia does have some extra syntacic niceties however. Here's an overview of
-what you can currently do in Avalonia:
-
-## Binding to a property on the DataContext
-
-By default a binding binds to a property on the `DataContext`, e.g.:
-
-```xml
-
-
-
-
-```
-
-An empty binding binds to DataContext itself
-
-```xml
-
-
-
-
-```
-
-This usage is identical to WPF/UWP etc.
-
-## Two way bindings and more
-
-You can also specify a binding `Mode`:
-
-```xml
-
-
-```
-
-This usage is identical to WPF/UWP etc.
-
-## Binding to a property on the templated parent
-
-When you're creating a control template and you want to bind to the templated parent you can use:
-
-```xml
-
-
-
-```
-
-This usage is identical to WPF/UWP etc.
-
-## Binding to a named control
-
-If you want to bind to a property on another (named) control, you can use `ElementName` as in
-WPF/UWP:
-
-```xml
-
-
-```
-
-However Avalonia also introduces a shorthand syntax for this:
-
-```xml
-
-```
-
-## Negating bindings
-
-You can also negate the value of a binding using the `!` operator:
-
-```xml
-
-```
-
-Here, the `TextBox` will only be enabled when the view model signals that it has no errors. Behind
-the scenes, Avalonia tries to convert the incoming value to a boolean, and if it can be converted
-it negates the value. If the incoming value cannot be converted to a boolean then no value will be
-pushed to the binding target.
-
-This syntax is specific to Avalonia.
-
-## Binding to tasks and observables
-
-You can subscribe to the result of a task or an observable by using the `^` stream binding operator.
-
-```xml
-
-
-```
-
-This syntax is specific to Avalonia.
-
-*Note: the stream operator is actually extensible, see
-[here](https://github.com/AvaloniaUI/Avalonia/blob/master/src/Markup/Avalonia.Markup/Data/Plugins/IStreamPlugin.cs)
-for the interface to implement and [here](https://github.com/AvaloniaUI/Avalonia/blob/master/src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs#L47)
-for the registration.*
diff --git a/docs/spec/defining-properties.md b/docs/spec/defining-properties.md
deleted file mode 100644
index d9e925aa1c..0000000000
--- a/docs/spec/defining-properties.md
+++ /dev/null
@@ -1,199 +0,0 @@
-# Defining Properties
-
-If you are creating a control, you will want to define properties on your
-control. The process in Avalonia is broadly similar to other XAML languages
-with a few differences - the main one being that Perpsex's equivalent of
-`DependencyProperty` is called `StyledProperty`.
-
-## Registering Styled Properties
-
-A styled property is analogous to a `DependencyProperty` in other XAML
-frameworks.
-
-You register a styled property by calling `AvaloniaProperty.Register` and
-storing the result in a `static readonly` field. You then create a standard C#
-property to access it.
-
-Here's how the `Border` control defines its `Background` property:
-
-```c#
- public static readonly StyledProperty BackgroundProperty =
- AvaloniaProperty.Register(nameof(Background));
-
- public Brush Background
- {
- get { return GetValue(BackgroundProperty); }
- set { SetValue(BackgroundProperty, value); }
- }
-```
-
-The `AvaloniaProperty.Register` method also accepts a number of other parameters:
-
-- `defaultValue`: This gives the property a default value. Be sure to only pass
-value types and immutable types here as passing a reference type will cause the
-same object to be used on all instances on which the property is registered.
-- `inherits`: Specified that the property's default value should come from
-the parent control.
-- `defaultBindingMode`: The default binding mode for the property. Can be set to
-`OneWay`, `TwoWay`, `OneTime` or `OneWayToSource`.
-- `validate`: A validation/coercion function of type
-`Func`. The function accepts the instance of the class
-on which the property is being set and the value and returns the coerced value
-or throws an exception for an invalid value.
-
-## Using a StyledProperty on Another Class
-
-Sometimes the property you want to add to your control already exists on another
-control, `Background` being a good example. To register a property defined on
-another control, you call `StyledProperty.AddOwner`:
-
-
-```c#
- public static readonly StyledProperty BackgroundProperty =
- Border.BackgroundProperty.AddOwner();
-
- public Brush Background
- {
- get { return GetValue(BackgroundProperty); }
- set { SetValue(BackgroundProperty, value); }
- }
-```
-
-*Note: Unlike WPF, a property must be registered on a class otherwise it cannot
-be set on an object of that class.*
-
-## Attached Properties
-
-Attached properties are defined almost identically to styled properties except
-that they are registered using the `RegisterAttached` method and their accessors
-are defined as static methods.
-
-Here's how `Grid` defines its `Grid.Column` attached property:
-
-```c#
- public static readonly AttachedProperty ColumnProperty =
- AvaloniaProperty.RegisterAttached("Column");
-
- public static int GetColumn(Control element)
- {
- return element.GetValue(ColumnProperty);
- }
-
- public static void SetColumn(Control element, int value)
- {
- element.SetValue(ColumnProperty, value);
- }
-```
-
-## Readonly AvaloniaProperties
-
-To create a readonly property you use the `AvaloniaProperty.RegisterDirect`
-method. Here is how `Visual` registers the readonly `Bounds` property:
-
-```c#
- public static readonly DirectProperty BoundsProperty =
- AvaloniaProperty.RegisterDirect(
- nameof(Bounds),
- o => o.Bounds);
-
- private Rect _bounds;
-
- public Rect Bounds
- {
- get { return _bounds; }
- private set { SetAndRaise(BoundsProperty, ref _bounds, value); }
- }
-```
-
-As can be seen, readonly properties are stored as a field on the object. When
-registering the property, a getter is passed which is used to access the
-property value through `GetValue` and then `SetAndRaise` is used to notify
-listeners to changes to the property.
-
-## Direct AvaloniaProperties
-
-As its name suggests, `RegisterDirect` isn't just used for registering readonly
-properties. You can also pass a *setter* to `RegisterDirect` to expose a
-standard C# property as a Avalonia property.
-
-A `StyledProperty` which is registered using `AvaloniaProperty.Register`
-maintains a prioritized list of values and bindings that allow styles to work.
-However, this is overkill for many properties, such as `ItemsControl.Items` -
-this will never be styled and the overhead involved with styled properties is
-unnecessary.
-
-Here is how `ItemsControl.Items` is registered:
-
-```c#
- public static readonly DirectProperty ItemsProperty =
- AvaloniaProperty.RegisterDirect(
- nameof(Items),
- o => o.Items,
- (o, v) => o.Items = v);
-
- private IEnumerable _items = new AvaloniaList
-
\ No newline at end of file
diff --git a/samples/ControlCatalog/Program.cs b/samples/ControlCatalog/Program.cs
deleted file mode 100644
index f975b91834..0000000000
--- a/samples/ControlCatalog/Program.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using Avalonia.Logging.Serilog;
-using Serilog;
-using System;
-using System.Linq;
-using Avalonia;
-
-namespace ControlCatalog
-{
- internal class Program
- {
- static void Main(string[] args)
- {
- InitializeLogging();
-
- new App()
- .ConfigureRenderSystem(args)
- .LoadFromXaml()
- .RunWithMainWindow();
- }
-
- // This will be made into a runtime configuration extension soon!
- private static void InitializeLogging()
- {
-#if DEBUG
- SerilogLogger.Initialize(new LoggerConfiguration()
- .MinimumLevel.Warning()
- .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
- .CreateLogger());
-#endif
- }
-
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Experimental: Would like to move this into a shared location once I figure out the best place for it
- // considering all common libraries are PCL and do not have access to Environment.OSVersion.Platform
- // nor do they have access to the platform specific render/subsystem extensions.
- //
- // Perhaps via DI we register each system with a priority/rank
- //
- public static class RenderSystemExtensions
- {
- [Flags]
- enum RenderSystem
- {
- None = 0,
- GTK = 1,
- Skia = 2,
- Direct2D = 4
- };
-
- ///
- /// Default (Optimal) render system for a particular platform
- ///
- ///
- private static RenderSystem DefaultRenderSystem()
- {
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.MacOSX:
- return RenderSystem.GTK;
-
- case PlatformID.Unix:
- return RenderSystem.GTK;
-
- case PlatformID.Win32Windows:
- return RenderSystem.Direct2D;
- }
-
- return RenderSystem.None;
- }
-
- ///
- /// Returns an array of avalidable rendering systems in priority order
- ///
- ///
- private static RenderSystem[] AvailableRenderSystems()
- {
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.MacOSX:
- return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia };
-
- case PlatformID.Unix:
- return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia };
-
- case PlatformID.Win32Windows:
- return new RenderSystem[] { RenderSystem.Direct2D, RenderSystem.Skia, RenderSystem.GTK };
- }
-
- return new RenderSystem[0];
- }
-
- ///
- /// Selects the optimal render system for desktop platforms. Supports cmd line overrides
- ///
- ///
- ///
- public static TApp ConfigureRenderSystem(this TApp app, string[] args) where TApp : Application
- {
- // So this all works great under Windows where it can support
- // ALL configurations. But on OSX/Unix we cannot use Direct2D
- //
- if (args.Contains("--gtk") || DefaultRenderSystem() == RenderSystem.GTK)
- {
- app.UseGtk();
- app.UseCairo();
- }
- else
- {
- app.UseWin32();
-
- if (args.Contains("--skia") || DefaultRenderSystem() == RenderSystem.Skia)
- {
- app.UseSkia();
- }
- else
- {
- app.UseDirect2D();
- }
- }
-
- return app;
- }
- }
-}
diff --git a/samples/ControlCatalog/Properties/AssemblyInfo.cs b/samples/ControlCatalog/Properties/AssemblyInfo.cs
deleted file mode 100644
index 30c069d7d8..0000000000
--- a/samples/ControlCatalog/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ControlCatalog")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ControlCatalog")]
-[assembly: AssemblyCopyright("Copyright © 2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("61bec86c-f307-4295-b5b8-9428610d7d55")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/ControlCatalog/SideBar.xaml b/samples/ControlCatalog/SideBar.xaml
index 950de71e2b..e5baf9e942 100644
--- a/samples/ControlCatalog/SideBar.xaml
+++ b/samples/ControlCatalog/SideBar.xaml
@@ -1,11 +1,12 @@
-
+
+
+
diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props
new file mode 100644
index 0000000000..7325bab2a3
--- /dev/null
+++ b/samples/Directory.Build.props
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/samples/Previewer/App.xaml b/samples/Previewer/App.xaml
new file mode 100644
index 0000000000..6bae1955af
--- /dev/null
+++ b/samples/Previewer/App.xaml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/Previewer/App.xaml.cs b/samples/Previewer/App.xaml.cs
new file mode 100644
index 0000000000..fffa987a27
--- /dev/null
+++ b/samples/Previewer/App.xaml.cs
@@ -0,0 +1,14 @@
+using Avalonia;
+using Avalonia.Markup.Xaml;
+
+namespace Previewer
+{
+ public class App : Application
+ {
+ public override void Initialize()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/samples/Previewer/Center.cs b/samples/Previewer/Center.cs
new file mode 100644
index 0000000000..7a28827d61
--- /dev/null
+++ b/samples/Previewer/Center.cs
@@ -0,0 +1,19 @@
+using Avalonia;
+using Avalonia.Controls;
+
+namespace Previewer
+{
+ public class Center : Decorator
+ {
+ protected override Size ArrangeOverride(Size finalSize)
+ {
+ if (Child != null)
+ {
+ var desired = Child.DesiredSize;
+ Child.Arrange(new Rect((finalSize.Width - desired.Width) / 2, (finalSize.Height - desired.Height) / 2,
+ desired.Width, desired.Height));
+ }
+ return finalSize;
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/Previewer/MainWindow.xaml b/samples/Previewer/MainWindow.xaml
new file mode 100644
index 0000000000..eb612303f2
--- /dev/null
+++ b/samples/Previewer/MainWindow.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/Previewer/MainWindow.xaml.cs b/samples/Previewer/MainWindow.xaml.cs
new file mode 100644
index 0000000000..8eabf44bc3
--- /dev/null
+++ b/samples/Previewer/MainWindow.xaml.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Net;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Controls.Remote;
+using Avalonia.Markup.Xaml;
+using Avalonia.Remote.Protocol;
+using Avalonia.Remote.Protocol.Designer;
+using Avalonia.Remote.Protocol.Viewport;
+using Avalonia.Threading;
+
+namespace Previewer
+{
+ public class MainWindow : Window
+ {
+ private const string InitialXaml = @"
+ Hello world!
+
+ ";
+ private IAvaloniaRemoteTransportConnection _connection;
+ private Control _errorsContainer;
+ private TextBlock _errors;
+ private RemoteWidget _remote;
+
+
+ public MainWindow()
+ {
+ this.InitializeComponent();
+ var tb = this.FindControl("Xaml");
+ tb.Text = InitialXaml;
+ var scroll = this.FindControl("Remote");
+ var rem = new Center();
+ scroll.Content = rem;
+ _errorsContainer = this.FindControl("ErrorsContainer");
+ _errors = this.FindControl("Errors");
+ tb.GetObservable(TextBox.TextProperty).Subscribe(text => _connection?.Send(new UpdateXamlMessage
+ {
+ Xaml = text
+ }));
+ new BsonTcpTransport().Listen(IPAddress.Loopback, 25000, t =>
+ {
+ Dispatcher.UIThread.Post(() =>
+ {
+ if (_connection != null)
+ {
+ _connection.Dispose();
+ _connection.OnMessage -= OnMessage;
+ }
+ _connection = t;
+ rem.Child = _remote = new RemoteWidget(t);
+ t.Send(new UpdateXamlMessage
+ {
+ Xaml = tb.Text
+ });
+
+ t.OnMessage += OnMessage;
+ });
+ });
+ Title = "Listening on 127.0.0.1:25000";
+ }
+
+ private void OnMessage(IAvaloniaRemoteTransportConnection transport, object obj)
+ {
+ Dispatcher.UIThread.Post(() =>
+ {
+ if (transport != _connection)
+ return;
+ if (obj is UpdateXamlResultMessage result)
+ {
+ _errorsContainer.IsVisible = result.Error != null;
+ _errors.Text = result.Error ?? "";
+ }
+ if (obj is RequestViewportResizeMessage resize)
+ {
+ _remote.Width = Math.Min(4096, Math.Max(resize.Width, 1));
+ _remote.Height = Math.Min(4096, Math.Max(resize.Height, 1));
+ }
+ });
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+ }
+}
diff --git a/samples/Previewer/Previewer.csproj b/samples/Previewer/Previewer.csproj
new file mode 100644
index 0000000000..b4dda473f2
--- /dev/null
+++ b/samples/Previewer/Previewer.csproj
@@ -0,0 +1,26 @@
+
+
+ Exe
+ netcoreapp2.0
+
+
+
+ %(Filename)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/Previewer/Program.cs b/samples/Previewer/Program.cs
new file mode 100644
index 0000000000..48363e27f2
--- /dev/null
+++ b/samples/Previewer/Program.cs
@@ -0,0 +1,13 @@
+using System;
+using Avalonia;
+
+namespace Previewer
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ AppBuilder.Configure().UsePlatformDetect().Start();
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/RemoteTest/Program.cs b/samples/RemoteTest/Program.cs
new file mode 100644
index 0000000000..f518e77143
--- /dev/null
+++ b/samples/RemoteTest/Program.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Controls.Remote;
+using Avalonia.Remote.Protocol;
+using Avalonia.Threading;
+using ControlCatalog;
+
+namespace RemoteTest
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ AppBuilder.Configure().UsePlatformDetect().SetupWithoutStarting();
+
+ var l = new TcpListener(IPAddress.Loopback, 0);
+ l.Start();
+ var port = ((IPEndPoint) l.LocalEndpoint).Port;
+ l.Stop();
+
+ var transport = new BsonTcpTransport();
+ transport.Listen(IPAddress.Loopback, port, sc =>
+ {
+ Dispatcher.UIThread.Post(() =>
+ {
+ new RemoteServer(sc).Content = new MainView();
+ });
+ });
+
+ var cts = new CancellationTokenSource();
+ transport.Connect(IPAddress.Loopback, port).ContinueWith(t =>
+ {
+ Dispatcher.UIThread.Post(() =>
+ {
+ var window = new Window()
+ {
+ Content = new RemoteWidget(t.Result)
+ };
+ window.Closed += delegate { cts.Cancel(); };
+ window.Show();
+ });
+ });
+ Dispatcher.UIThread.MainLoop(cts.Token);
+
+
+
+ }
+ }
+}
diff --git a/samples/RemoteTest/RemoteTest.csproj b/samples/RemoteTest/RemoteTest.csproj
new file mode 100644
index 0000000000..2487c66e41
--- /dev/null
+++ b/samples/RemoteTest/RemoteTest.csproj
@@ -0,0 +1,25 @@
+
+
+
+ Exe
+ netcoreapp2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/RenderTest/App.config b/samples/RenderTest/App.config
index 10a06d8258..cd4593817b 100644
--- a/samples/RenderTest/App.config
+++ b/samples/RenderTest/App.config
@@ -1,21 +1,21 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/samples/RenderTest/App.xaml.cs b/samples/RenderTest/App.xaml.cs
index 4492e5ae4c..fd2b940f6a 100644
--- a/samples/RenderTest/App.xaml.cs
+++ b/samples/RenderTest/App.xaml.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia;
+using Avalonia.Logging.Serilog;
using Avalonia.Markup.Xaml;
namespace RenderTest
@@ -12,5 +13,17 @@ namespace RenderTest
{
AvaloniaXamlLoader.Load(this);
}
+
+ // TODO: Make this work with GTK/Skia/Cairo depending on command-line args
+ // again.
+ static void Main(string[] args) => BuildAvaloniaApp().Start();
+
+ // App configuration, used by the entry point and previewer
+ static AppBuilder BuildAvaloniaApp()
+ => AppBuilder.Configure()
+ .UsePlatformDetect()
+ .UseReactiveUI()
+ .LogToDebug();
+
}
}
diff --git a/samples/RenderTest/MainWindow.xaml b/samples/RenderTest/MainWindow.xaml
index 1d3001f1b1..da49054b77 100644
--- a/samples/RenderTest/MainWindow.xaml
+++ b/samples/RenderTest/MainWindow.xaml
@@ -1,6 +1,8 @@
+ Title="AvaloniaUI Rendering Test"
+ xmlns:pages="clr-namespace:RenderTest.Pages"
+ Width="800"
+ Height="600">
-
+
-
+
+
\ No newline at end of file
diff --git a/samples/RenderTest/Pages/AnimationsPage.xaml b/samples/RenderTest/Pages/AnimationsPage.xaml
index 6eb7067245..5287e4e373 100644
--- a/samples/RenderTest/Pages/AnimationsPage.xaml
+++ b/samples/RenderTest/Pages/AnimationsPage.xaml
@@ -1,2 +1,123 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hover to activate Transform Keyframe Animations.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/RenderTest/Pages/AnimationsPage.xaml.cs b/samples/RenderTest/Pages/AnimationsPage.xaml.cs
index 991896c3b5..2623721393 100644
--- a/samples/RenderTest/Pages/AnimationsPage.xaml.cs
+++ b/samples/RenderTest/Pages/AnimationsPage.xaml.cs
@@ -7,6 +7,7 @@ using Avalonia.Data;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
+using RenderTest.ViewModels;
namespace RenderTest.Pages
{
@@ -14,77 +15,13 @@ namespace RenderTest.Pages
{
public AnimationsPage()
{
- this.InitializeComponent();
- this.CreateAnimations();
+ InitializeComponent();
+ this.DataContext = new AnimationsPageViewModel();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
-
- private void CreateAnimations()
- {
- const int Count = 100;
- var panel = new WrapPanel();
-
- for (var i = 0; i < Count; ++i)
- {
- Ellipse ellipse;
- var element = new Panel
- {
- Children =
- {
- (ellipse = new Ellipse
- {
- Name = $"ellipse{i}",
- Width = 100,
- Height = 100,
- Fill = Brushes.Blue,
- }),
- new Path
- {
- Data = StreamGeometry.Parse(
- "F1 M 16.6309,18.6563C 17.1309,8.15625 29.8809,14.1563 29.8809,14.1563C 30.8809,11.1563 34.1308,11.4063 34.1308,11.4063C 33.5,12 34.6309,13.1563 34.6309,13.1563C 32.1309,13.1562 31.1309,14.9062 31.1309,14.9062C 41.1309,23.9062 32.6309,27.9063 32.6309,27.9062C 24.6309,24.9063 21.1309,22.1562 16.6309,18.6563 Z M 16.6309,19.9063C 21.6309,24.1563 25.1309,26.1562 31.6309,28.6562C 31.6309,28.6562 26.3809,39.1562 18.3809,36.1563C 18.3809,36.1563 18,38 16.3809,36.9063C 15,36 16.3809,34.9063 16.3809,34.9063C 16.3809,34.9063 10.1309,30.9062 16.6309,19.9063 Z"),
- Fill = Brushes.Green,
- HorizontalAlignment = Avalonia.Layout.HorizontalAlignment.Center,
- VerticalAlignment = Avalonia.Layout.VerticalAlignment.Center,
- RenderTransform = new ScaleTransform(2, 2),
- }
- },
- Margin = new Thickness(4),
- RenderTransform = new ScaleTransform(),
- };
-
- var start = Animate.Stopwatch.Elapsed;
- var index = i % (Count / 2);
- var degrees = Animate.Timer
- .Select(x => (x - start).TotalSeconds)
- .Where(x => (x % Count) >= index && (x % Count) < index + 1)
- .Select(x => (x % 1) / 1);
-
- element.RenderTransform.Bind(
- ScaleTransform.ScaleXProperty,
- degrees,
- BindingPriority.Animation);
-
- ellipse.PointerEnter += Ellipse_PointerEnter;
- ellipse.PointerLeave += Ellipse_PointerLeave;
-
- panel.Children.Add(element);
- }
-
- Content = panel;
- }
-
- private void Ellipse_PointerEnter(object sender, PointerEventArgs e)
- {
- ((Ellipse)sender).Fill = Brushes.Red;
- }
-
- private void Ellipse_PointerLeave(object sender, PointerEventArgs e)
- {
- ((Ellipse)sender).Fill = Brushes.Blue;
- }
}
}
diff --git a/samples/RenderTest/Pages/ClippingPage.xaml b/samples/RenderTest/Pages/ClippingPage.xaml
index 47e9d51e3c..2e7944b0fc 100644
--- a/samples/RenderTest/Pages/ClippingPage.xaml
+++ b/samples/RenderTest/Pages/ClippingPage.xaml
@@ -1,13 +1,52 @@
-
+
-
+
+
+
+
+
+
-
+ Clip="M 58.625 0.07421875
+ C 50.305778 0.26687364 42.411858 7.0346526 41.806641 15.595703
+ C 42.446442 22.063923 39.707425 13.710754 36.982422 12.683594
+ C 29.348395 6.1821635 16.419398 8.4359222 11.480469 17.195312
+ C 6.0935256 25.476803 9.8118851 37.71125 18.8125 41.6875
+ C 9.1554771 40.62945 -0.070876925 49.146842 0.21679688 58.857422
+ C 0.21545578 60.872512 0.56758794 62.88911 1.2617188 64.78125
+ C 4.3821886 74.16708 16.298268 78.921772 25.03125 74.326172
+ C 28.266843 72.062552 26.298191 74.214838 25.414062 76.398438
+ C 21.407348 85.589198 27.295992 97.294293 37.097656 99.501953
+ C 46.864883 102.3541 57.82177 94.726518 58.539062 84.580078
+ C 58.142158 79.498998 59.307538 83.392694 61.207031 85.433594
+ C 67.532324 93.056874 80.440232 93.192029 86.882812 85.630859
+ C 93.836392 78.456939 92.396838 65.538666 84.115234 60.009766
+ C 79.783641 57.904836 83.569793 58.802369 86.375 58.193359
+ C 96.383335 56.457569 102.87506 44.824101 99.083984 35.394531
+ C 95.963498 26.008711 84.047451 21.254079 75.314453 25.849609
+ C 72.078834 28.113269 74.047517 25.960974 74.931641 23.777344
+ C 78.93827 14.586564 73.049722 2.8815081 63.248047 0.67382812
+ C 61.721916 0.22817968 60.165597 0.038541919 58.625 0.07421875 z ">
+
+
+
+
Apply Geometry Clip
diff --git a/samples/RenderTest/Pages/ClippingPage.xaml.cs b/samples/RenderTest/Pages/ClippingPage.xaml.cs
index b416f12943..2a79076d4c 100644
--- a/samples/RenderTest/Pages/ClippingPage.xaml.cs
+++ b/samples/RenderTest/Pages/ClippingPage.xaml.cs
@@ -16,7 +16,6 @@ namespace RenderTest.Pages
public ClippingPage()
{
InitializeComponent();
- CreateAnimations();
WireUpCheckbox();
}
@@ -25,18 +24,6 @@ namespace RenderTest.Pages
AvaloniaXamlLoader.Load(this);
}
- private void CreateAnimations()
- {
- var clipped = this.FindControl("clipChild");
- var degrees = Animate.Timer.Select(x => x.TotalMilliseconds / 5);
- clipped.RenderTransform = new RotateTransform();
- clipped.RenderTransform.Bind(RotateTransform.AngleProperty, degrees, BindingPriority.Animation);
- clipped.Bind(
- Border.BackgroundProperty,
- clipped.GetObservable(Control.IsPointerOverProperty)
- .Select(x => x ? Brushes.Crimson : AvaloniaProperty.UnsetValue));
- }
-
private void WireUpCheckbox()
{
var useMask = this.FindControl("useMask");
diff --git a/samples/RenderTest/Pages/DrawingPage.xaml b/samples/RenderTest/Pages/DrawingPage.xaml
new file mode 100644
index 0000000000..ee892774f0
--- /dev/null
+++ b/samples/RenderTest/Pages/DrawingPage.xaml
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/RenderTest/Pages/DrawingPage.xaml.cs b/samples/RenderTest/Pages/DrawingPage.xaml.cs
new file mode 100644
index 0000000000..3bf9bd545d
--- /dev/null
+++ b/samples/RenderTest/Pages/DrawingPage.xaml.cs
@@ -0,0 +1,18 @@
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace RenderTest.Pages
+{
+ public class DrawingPage : UserControl
+ {
+ public DrawingPage()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+ }
+}
diff --git a/samples/RenderTest/Program.cs b/samples/RenderTest/Program.cs
deleted file mode 100644
index 7a23e09dd4..0000000000
--- a/samples/RenderTest/Program.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Linq;
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Logging.Serilog;
-using Avalonia.Platform;
-using Serilog;
-
-namespace RenderTest
-{
- internal class Program
- {
- static void Main(string[] args)
- {
- InitializeLogging();
-
- // TODO: Make this work with GTK/Skia/Cairo depending on command-line args
- // again.
- AppBuilder.Configure()
- .UsePlatformDetect()
- .Start();
- }
-
- // This will be made into a runtime configuration extension soon!
- private static void InitializeLogging()
- {
-#if DEBUG
- SerilogLogger.Initialize(new LoggerConfiguration()
- .MinimumLevel.Warning()
- .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
- .CreateLogger());
-#endif
- }
- }
-}
diff --git a/samples/RenderTest/Properties/AssemblyInfo.cs b/samples/RenderTest/Properties/AssemblyInfo.cs
deleted file mode 100644
index f66c158075..0000000000
--- a/samples/RenderTest/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("RenderTest")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("RenderTest")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("f1fdc5b0-4654-416f-ae69-e3e9bbd87801")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/RenderTest/RenderTest.csproj b/samples/RenderTest/RenderTest.csproj
index cf32316086..30d7dbb2ec 100644
--- a/samples/RenderTest/RenderTest.csproj
+++ b/samples/RenderTest/RenderTest.csproj
@@ -1,187 +1,34 @@
-
-
-
+
- Debug
- AnyCPU
- {F1FDC5B0-4654-416F-AE69-E3E9BBD87801}
- WinExe
- Properties
- RenderTest
- RenderTest
- v4.5
- 512
- true
-
+ Exe
+ netcoreapp2.0;net461
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- App.xaml
-
-
- ClippingPage.xaml
-
-
- AnimationsPage.xaml
-
-
-
-
- MainWindow.xaml
-
-
-
-
-
-
-
-
- Designer
-
-
-
-
- {d211e587-d8bc-45b9-95a4-f297c8fa5200}
- Avalonia.Animation
-
-
- {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
- Avalonia.Base
-
-
- {d2221c82-4a25-4583-9b43-d791e3f6820c}
- Avalonia.Controls
-
-
- {799a7bb5-3c2c-48b6-85a7-406a12c420da}
- Avalonia.DesignerSupport
-
-
- {7062ae20-5dcc-4442-9645-8195bdece63e}
- Avalonia.Diagnostics
-
-
- {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}
- Avalonia.DotNetFrameworkRuntime
-
-
- {62024b2d-53eb-4638-b26b-85eeaa54866e}
- Avalonia.Input
-
-
- {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}
- Avalonia.Interactivity
-
-
- {42472427-4774-4c81-8aff-9f27b8e31721}
- Avalonia.Layout
-
-
- {b61b66a3-b82d-4875-8001-89d3394fe0c9}
- Avalonia.Logging.Serilog
-
-
- {6417b24e-49c2-4985-8db2-3ab9d898ec91}
- Avalonia.ReactiveUI
-
-
- {eb582467-6abb-43a1-b052-e981ba910e3a}
- Avalonia.Visuals
-
-
- {f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
- Avalonia.Styling
-
-
- {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
- Avalonia.Themes.Default
-
-
- {fb05ac90-89ba-4f2f-a924-f37875fb547c}
- Avalonia.Cairo
-
-
- {54f237d5-a70a-4752-9656-0c70b1a7b047}
- Avalonia.Gtk
-
-
- {3e53a01a-b331-47f3-b828-4a5717e77a24}
- Avalonia.Markup.Xaml
-
-
- {6417e941-21bc-467b-a771-0de389353ce6}
- Avalonia.Markup
-
-
- {925dd807-b651-475f-9f7c-cbeb974ce43d}
- Avalonia.Skia.Desktop
-
-
- {3e908f67-5543-4879-a1dc-08eace79b3cd}
- Avalonia.Direct2D1
-
-
- {811a76cf-1cf6-440f-963b-bbe31bd72a82}
- Avalonia.Win32
-
-
-
-
- Designer
-
-
-
-
- Designer
-
-
-
-
- Designer
-
-
-
-
- Designer
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
\ No newline at end of file
diff --git a/samples/RenderTest/SideBar.xaml b/samples/RenderTest/SideBar.xaml
index 950de71e2b..29e5d854f9 100644
--- a/samples/RenderTest/SideBar.xaml
+++ b/samples/RenderTest/SideBar.xaml
@@ -1,11 +1,13 @@
-
+
+
+
diff --git a/samples/RenderTest/ViewModels/AnimationsPageViewModel.cs b/samples/RenderTest/ViewModels/AnimationsPageViewModel.cs
new file mode 100644
index 0000000000..17eee547a1
--- /dev/null
+++ b/samples/RenderTest/ViewModels/AnimationsPageViewModel.cs
@@ -0,0 +1,40 @@
+using System;
+using ReactiveUI;
+using Avalonia.Animation;
+
+namespace RenderTest.ViewModels
+{
+ public class AnimationsPageViewModel : ReactiveObject
+ {
+ private string _playStateText = "Pause all animations";
+
+ public AnimationsPageViewModel()
+ {
+ ToggleGlobalPlayState = ReactiveCommand.Create(()=>TogglePlayState());
+ }
+
+ void TogglePlayState()
+ {
+ switch (Timing.GetGlobalPlayState())
+ {
+ case PlayState.Run:
+ PlayStateText = "Resume all animations";
+ Timing.SetGlobalPlayState(PlayState.Pause);
+ break;
+
+ case PlayState.Pause:
+ PlayStateText = "Pause all animations";
+ Timing.SetGlobalPlayState(PlayState.Run);
+ break;
+ }
+ }
+
+ public string PlayStateText
+ {
+ get { return _playStateText; }
+ set { this.RaiseAndSetIfChanged(ref _playStateText, value); }
+ }
+
+ public ReactiveCommand ToggleGlobalPlayState { get; }
+ }
+}
diff --git a/samples/RenderTest/ViewModels/MainWindowViewModel.cs b/samples/RenderTest/ViewModels/MainWindowViewModel.cs
index bd68752f66..02a2abeb89 100644
--- a/samples/RenderTest/ViewModels/MainWindowViewModel.cs
+++ b/samples/RenderTest/ViewModels/MainWindowViewModel.cs
@@ -5,15 +5,13 @@ namespace RenderTest.ViewModels
{
public class MainWindowViewModel : ReactiveObject
{
- private bool drawDirtyRects = true;
+ private bool drawDirtyRects = false;
private bool drawFps = true;
public MainWindowViewModel()
{
- ToggleDrawDirtyRects = ReactiveCommand.Create();
- ToggleDrawDirtyRects.Subscribe(_ => DrawDirtyRects = !DrawDirtyRects);
- ToggleDrawFps = ReactiveCommand.Create();
- ToggleDrawFps.Subscribe(_ => DrawFps = !DrawFps);
+ ToggleDrawDirtyRects = ReactiveCommand.Create(() => DrawDirtyRects = !DrawDirtyRects);
+ ToggleDrawFps = ReactiveCommand.Create(() => DrawFps = !DrawFps);
}
public bool DrawDirtyRects
@@ -28,7 +26,7 @@ namespace RenderTest.ViewModels
set { this.RaiseAndSetIfChanged(ref drawFps, value); }
}
- public ReactiveCommand ToggleDrawDirtyRects { get; }
- public ReactiveCommand ToggleDrawFps { get; }
+ public ReactiveCommand ToggleDrawDirtyRects { get; }
+ public ReactiveCommand ToggleDrawFps { get; }
}
}
diff --git a/samples/VirtualizationTest/App.config b/samples/VirtualizationTest/App.config
index 10a06d8258..cd4593817b 100644
--- a/samples/VirtualizationTest/App.config
+++ b/samples/VirtualizationTest/App.config
@@ -1,21 +1,21 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/samples/VirtualizationTest/MainWindow.xaml b/samples/VirtualizationTest/MainWindow.xaml
index 55bd729fec..eb94253d27 100644
--- a/samples/VirtualizationTest/MainWindow.xaml
+++ b/samples/VirtualizationTest/MainWindow.xaml
@@ -1,5 +1,7 @@
+ Title="AvaloniaUI Virtualization Test"
+ Width="800"
+ Height="600">
+ Horiz. ScrollBar
+
+ Vert. ScrollBar
+
@@ -35,7 +43,9 @@
Items="{Binding Items}"
SelectedItems="{Binding SelectedItems}"
SelectionMode="Multiple"
- VirtualizationMode="{Binding VirtualizationMode}">
+ VirtualizationMode="{Binding VirtualizationMode}"
+ ScrollViewer.HorizontalScrollBarVisibility="{Binding HorizontalScrollBarVisibility, Mode=TwoWay}"
+ ScrollViewer.VerticalScrollBarVisibility="{Binding VerticalScrollBarVisibility, Mode=TwoWay}">
@@ -43,7 +53,7 @@
-
+
diff --git a/samples/VirtualizationTest/Program.cs b/samples/VirtualizationTest/Program.cs
index d5649f6a06..097f0cfdc7 100644
--- a/samples/VirtualizationTest/Program.cs
+++ b/samples/VirtualizationTest/Program.cs
@@ -13,21 +13,11 @@ namespace VirtualizationTest
{
static void Main(string[] args)
{
- InitializeLogging();
-
AppBuilder.Configure()
.UsePlatformDetect()
+ .UseReactiveUI()
+ .LogToDebug()
.Start();
}
-
- private static void InitializeLogging()
- {
-#if DEBUG
- SerilogLogger.Initialize(new LoggerConfiguration()
- .MinimumLevel.Warning()
- .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
- .CreateLogger());
-#endif
- }
}
}
diff --git a/samples/VirtualizationTest/Properties/AssemblyInfo.cs b/samples/VirtualizationTest/Properties/AssemblyInfo.cs
deleted file mode 100644
index e6af64555b..0000000000
--- a/samples/VirtualizationTest/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("VirtualizationTest")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("VirtualizationTest")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("fbcaf3d0-2808-4934-8e96-3f607594517b")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs
index 86869eb46a..8eab91e06d 100644
--- a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs
+++ b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs
@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls;
+using Avalonia.Controls.Primitives;
using ReactiveUI;
namespace VirtualizationTest.ViewModels
@@ -17,26 +18,23 @@ namespace VirtualizationTest.ViewModels
private int _newItemIndex;
private IReactiveList _items;
private string _prefix = "Item";
- private Orientation _orientation;
+ private ScrollBarVisibility _horizontalScrollBarVisibility = ScrollBarVisibility.Auto;
+ private ScrollBarVisibility _verticalScrollBarVisibility = ScrollBarVisibility.Auto;
+ private Orientation _orientation = Orientation.Vertical;
private ItemVirtualizationMode _virtualizationMode = ItemVirtualizationMode.Simple;
public MainWindowViewModel()
{
this.WhenAnyValue(x => x.ItemCount).Subscribe(ResizeItems);
- RecreateCommand = ReactiveCommand.Create();
- RecreateCommand.Subscribe(_ => Recreate());
+ RecreateCommand = ReactiveCommand.Create(() => Recreate());
- AddItemCommand = ReactiveCommand.Create();
- AddItemCommand.Subscribe(_ => AddItem());
+ AddItemCommand = ReactiveCommand.Create(() => AddItem());
- RemoveItemCommand = ReactiveCommand.Create();
- RemoveItemCommand.Subscribe(_ => Remove());
+ RemoveItemCommand = ReactiveCommand.Create(() => Remove());
- SelectFirstCommand = ReactiveCommand.Create();
- SelectFirstCommand.Subscribe(_ => SelectItem(0));
+ SelectFirstCommand = ReactiveCommand.Create(() => SelectItem(0));
- SelectLastCommand = ReactiveCommand.Create();
- SelectLastCommand.Subscribe(_ => SelectItem(Items.Count - 1));
+ SelectLastCommand = ReactiveCommand.Create(() => SelectItem(Items.Count - 1));
}
public string NewItemString
@@ -69,6 +67,21 @@ namespace VirtualizationTest.ViewModels
public IEnumerable Orientations =>
Enum.GetValues(typeof(Orientation)).Cast();
+ public ScrollBarVisibility HorizontalScrollBarVisibility
+ {
+ get { return _horizontalScrollBarVisibility; }
+ set { this.RaiseAndSetIfChanged(ref _horizontalScrollBarVisibility, value); }
+ }
+
+ public ScrollBarVisibility VerticalScrollBarVisibility
+ {
+ get { return _verticalScrollBarVisibility; }
+ set { this.RaiseAndSetIfChanged(ref _verticalScrollBarVisibility, value); }
+ }
+
+ public IEnumerable ScrollBarVisibilities =>
+ Enum.GetValues(typeof(ScrollBarVisibility)).Cast();
+
public ItemVirtualizationMode VirtualizationMode
{
get { return _virtualizationMode; }
@@ -78,11 +91,11 @@ namespace VirtualizationTest.ViewModels
public IEnumerable VirtualizationModes =>
Enum.GetValues(typeof(ItemVirtualizationMode)).Cast();
- public ReactiveCommand AddItemCommand { get; private set; }
- public ReactiveCommand RecreateCommand { get; private set; }
- public ReactiveCommand RemoveItemCommand { get; private set; }
- public ReactiveCommand SelectFirstCommand { get; private set; }
- public ReactiveCommand SelectLastCommand { get; private set; }
+ public ReactiveCommand AddItemCommand { get; private set; }
+ public ReactiveCommand RecreateCommand { get; private set; }
+ public ReactiveCommand RemoveItemCommand { get; private set; }
+ public ReactiveCommand SelectFirstCommand { get; private set; }
+ public ReactiveCommand SelectLastCommand { get; private set; }
private void ResizeItems(int count)
{
diff --git a/samples/VirtualizationTest/VirtualizationTest.csproj b/samples/VirtualizationTest/VirtualizationTest.csproj
index 9b9d8a94c6..30d7dbb2ec 100644
--- a/samples/VirtualizationTest/VirtualizationTest.csproj
+++ b/samples/VirtualizationTest/VirtualizationTest.csproj
@@ -1,162 +1,34 @@
-
-
-
+
- Debug
- AnyCPU
- {FBCAF3D0-2808-4934-8E96-3F607594517B}
- WinExe
- Properties
- VirtualizationTest
- VirtualizationTest
- v4.5
- 512
- true
-
+ Exe
+ netcoreapp2.0;net461
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- App.xaml
-
-
- MainWindow.xaml
-
-
-
-
-
-
-
-
-
-
-
- {d211e587-d8bc-45b9-95a4-f297c8fa5200}
- Avalonia.Animation
-
-
- {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
- Avalonia.Base
-
-
- {d2221c82-4a25-4583-9b43-d791e3f6820c}
- Avalonia.Controls
-
-
- {799a7bb5-3c2c-48b6-85a7-406a12c420da}
- Avalonia.DesignerSupport
-
-
- {7062ae20-5dcc-4442-9645-8195bdece63e}
- Avalonia.Diagnostics
-
-
- {4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}
- Avalonia.DotNetFrameworkRuntime
-
-
- {62024b2d-53eb-4638-b26b-85eeaa54866e}
- Avalonia.Input
-
-
- {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}
- Avalonia.Interactivity
-
-
- {42472427-4774-4c81-8aff-9f27b8e31721}
- Avalonia.Layout
-
-
- {B61B66A3-B82D-4875-8001-89D3394FE0C9}
- Avalonia.Logging.Serilog
-
-
- {6417b24e-49c2-4985-8db2-3ab9d898ec91}
- Avalonia.ReactiveUI
-
-
- {eb582467-6abb-43a1-b052-e981ba910e3a}
- Avalonia.Visuals
-
-
- {f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
- Avalonia.Styling
-
-
- {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
- Avalonia.Themes.Default
-
-
- {3e53a01a-b331-47f3-b828-4a5717e77a24}
- Avalonia.Markup.Xaml
-
-
- {6417e941-21bc-467b-a771-0de389353ce6}
- Avalonia.Markup
-
-
- {3e908f67-5543-4879-a1dc-08eace79b3cd}
- Avalonia.Direct2D1
-
-
- {811a76cf-1cf6-440f-963b-bbe31bd72a82}
- Avalonia.Win32
-
-
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Avalonia.Cairo
-
-
- {54F237D5-A70A-4752-9656-0C70B1A7B047}
- Avalonia.Gtk
-
-
-
-
- Designer
-
-
-
- Designer
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
-
+
\ No newline at end of file
diff --git a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
index d90a251173..e0f3e92c74 100644
--- a/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
+++ b/samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
@@ -4,8 +4,8 @@
net461
-
-
+
+
%(Filename)
@@ -17,7 +17,9 @@
-
+
+ PreserveNewest
+
@@ -28,8 +30,5 @@
-
-
-
\ No newline at end of file
diff --git a/samples/interop/Direct3DInteropSample/MainWindow.cs b/samples/interop/Direct3DInteropSample/MainWindow.cs
index ad40e81895..19c31a3af1 100644
--- a/samples/interop/Direct3DInteropSample/MainWindow.cs
+++ b/samples/interop/Direct3DInteropSample/MainWindow.cs
@@ -88,7 +88,6 @@ namespace Direct3DInteropSample
context.ClearDepthStencilView(depthView, DepthStencilClearFlags.Depth, 1.0f, 0);
context.ClearRenderTargetView(renderView, Color.White);
- var time = 50;
// Update WorldViewProj Matrix
var worldViewProj = Matrix.RotationX((float) _model.RotationX) * Matrix.RotationY((float) _model.RotationY) *
Matrix.RotationZ((float) _model.RotationZ)
@@ -253,8 +252,9 @@ namespace Direct3DInteropSample
public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer)
{
- return new DrawingContextImpl(visualBrushRenderer, _window._d2dRenderTarget,
- AvaloniaLocator.Current.GetService());
+ return new DrawingContextImpl(visualBrushRenderer, null, _window._d2dRenderTarget,
+ AvaloniaLocator.Current.GetService(),
+ AvaloniaLocator.Current.GetService());
}
}
diff --git a/samples/interop/Direct3DInteropSample/Program.cs b/samples/interop/Direct3DInteropSample/Program.cs
index 7fb650a7a8..d5de5ccb4e 100644
--- a/samples/interop/Direct3DInteropSample/Program.cs
+++ b/samples/interop/Direct3DInteropSample/Program.cs
@@ -11,7 +11,7 @@ namespace Direct3DInteropSample
{
static void Main(string[] args)
{
- AppBuilder.Configure().UseWin32().UseDirect2D1().Start();
+ AppBuilder.Configure().UseWin32(deferredRendering: false).UseDirect2D1().Start();
}
}
}
diff --git a/samples/interop/GtkInteropDemo/App.config b/samples/interop/GtkInteropDemo/App.config
deleted file mode 100644
index 8324aa6ff1..0000000000
--- a/samples/interop/GtkInteropDemo/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj b/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj
deleted file mode 100644
index d9a61064f1..0000000000
--- a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj
+++ /dev/null
@@ -1,155 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}
- WinExe
- Properties
- GtkInteropDemo
- GtkInteropDemo
- v4.6
- 512
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
- Designer
-
-
- True
- Resources.resx
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
-
-
-
-
-
-
- {d211e587-d8bc-45b9-95a4-f297c8fa5200}
- Avalonia.Animation
-
-
- {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
- Avalonia.Base
-
-
- {d2221c82-4a25-4583-9b43-d791e3f6820c}
- Avalonia.Controls
-
-
- {7062ae20-5dcc-4442-9645-8195bdece63e}
- Avalonia.Diagnostics
-
-
- {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}
- Avalonia.DotNetFrameworkRuntime
-
-
- {62024b2d-53eb-4638-b26b-85eeaa54866e}
- Avalonia.Input
-
-
- {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}
- Avalonia.Interactivity
-
-
- {42472427-4774-4c81-8aff-9f27b8e31721}
- Avalonia.Layout
-
-
- {6417b24e-49c2-4985-8db2-3ab9d898ec91}
- Avalonia.ReactiveUI
-
-
- {eb582467-6abb-43a1-b052-e981ba910e3a}
- Avalonia.Visuals
-
-
- {f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
- Avalonia.Styling
-
-
- {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
- Avalonia.Themes.Default
-
-
- {fb05ac90-89ba-4f2f-a924-f37875fb547c}
- Avalonia.Cairo
-
-
- {54f237d5-a70a-4752-9656-0c70b1a7b047}
- Avalonia.Gtk
-
-
- {3e53a01a-b331-47f3-b828-4a5717e77a24}
- Avalonia.Markup.Xaml
-
-
- {6417e941-21bc-467b-a771-0de389353ce6}
- Avalonia.Markup
-
-
- {925dd807-b651-475f-9f7c-cbeb974ce43d}
- Avalonia.Skia.Desktop
-
-
- {d0a739b9-3c68-4ba6-a328-41606954b6bd}
- ControlCatalog
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/MainWindow.cs b/samples/interop/GtkInteropDemo/MainWindow.cs
deleted file mode 100644
index 2c193f24e8..0000000000
--- a/samples/interop/GtkInteropDemo/MainWindow.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Avalonia.Diagnostics;
-using Avalonia.Gtk.Embedding;
-using ControlCatalog;
-using Gtk;
-
-namespace GtkInteropDemo
-{
- class MainWindow : Window
- {
- public MainWindow() : base("Gtk Embedding Demo")
- {
- var root = new HBox();
- var left = new VBox();
- left.Add(new Button("I'm GTK button"));
- left.Add(new Calendar());
- root.PackEnd(left, false, false, 0);
- var host = new GtkAvaloniaControlHost() {Content = new MainView()};
- host.SetSizeRequest(600, 600);
- root.PackStart(host, true, true, 0);
- Add(root);
-
- ShowAll();
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Program.cs b/samples/interop/GtkInteropDemo/Program.cs
deleted file mode 100644
index 7dd39c74ca..0000000000
--- a/samples/interop/GtkInteropDemo/Program.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Avalonia;
-using Avalonia.Controls;
-using ControlCatalog;
-
-namespace GtkInteropDemo
-{
- static class Program
- {
- ///
- /// The main entry point for the application.
- ///
- [STAThread]
- static void Main()
- {
- AppBuilder.Configure().UseGtk().UseCairo().SetupWithoutStarting();
- new MainWindow().Show();
- Gtk.Application.Run();
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs b/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8aaf28c2f0..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("GtkInteropDemo")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("GtkInteropDemo")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("bd7f352c-6dc1-4740-baf2-2d34a038728c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs
deleted file mode 100644
index f79a8bf680..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GtkInteropDemo.Properties
-{
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GtkInteropDemo.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.resx b/samples/interop/GtkInteropDemo/Properties/Resources.resx
deleted file mode 100644
index af7dbebbac..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs
deleted file mode 100644
index 8173ee7dfa..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GtkInteropDemo.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.settings b/samples/interop/GtkInteropDemo/Properties/Settings.settings
deleted file mode 100644
index 39645652af..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml
index 1115cf5768..1d8dc32a69 100644
--- a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml
+++ b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml
@@ -1,10 +1,12 @@
@@ -14,8 +16,18 @@
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs
index e60c9ced0a..c7a23c22fc 100644
--- a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs
+++ b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs
@@ -11,7 +11,9 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using Avalonia;
using Avalonia.Controls;
+using Avalonia.VisualTree;
using ControlCatalog;
using Window = System.Windows.Window;
@@ -25,7 +27,18 @@ namespace WindowsInteropTest
public EmbedToWpfDemo()
{
InitializeComponent();
- Host.Content = new MainView();
+ var view = new MainView();
+ view.AttachedToVisualTree += delegate
+ {
+ ((TopLevel) view.GetVisualRoot()).AttachDevTools();
+ };
+ Host.Content = view;
+ var btn = (Avalonia.Controls.Button) RightBtn.Content;
+ btn.Click += delegate
+ {
+ btn.Content += "!";
+ };
+
}
}
}
diff --git a/samples/interop/WindowsInteropTest/Program.cs b/samples/interop/WindowsInteropTest/Program.cs
index 4770688ecf..fac06d74b0 100644
--- a/samples/interop/WindowsInteropTest/Program.cs
+++ b/samples/interop/WindowsInteropTest/Program.cs
@@ -15,7 +15,7 @@ namespace WindowsInteropTest
{
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
- AppBuilder.Configure().UseWin32().UseSkia().SetupWithoutStarting();
+ AppBuilder.Configure().UseWin32().UseDirect2D1().SetupWithoutStarting();
System.Windows.Forms.Application.Run(new SelectorForm());
}
}
diff --git a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
index ac7d25a91e..66a92bb9d6 100644
--- a/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
+++ b/samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
@@ -9,12 +9,12 @@
Properties
WindowsInteropTest
WindowsInteropTest
- v4.6
+ v4.6.1
512
true
- AnyCPU
+ x86
true
full
false
@@ -156,14 +156,18 @@
{6417e941-21bc-467b-a771-0de389353ce6}
Avalonia.Markup
-
- {925dd807-b651-475f-9f7c-cbeb974ce43d}
- Avalonia.Skia.Desktop
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
{3e908f67-5543-4879-a1dc-08eace79b3cd}
Avalonia.Direct2D1
+
+ {cbc4ff2f-92d4-420b-be21-9fe0b930b04e}
+ Avalonia.Win32.Interop
+
{811a76cf-1cf6-440f-963b-bbe31bd72a82}
Avalonia.Win32
@@ -182,5 +186,4 @@
-
\ No newline at end of file
diff --git a/scripts/ReplaceNugetCache.ps1 b/scripts/ReplaceNugetCache.ps1
new file mode 100644
index 0000000000..a03d442bff
--- /dev/null
+++ b/scripts/ReplaceNugetCache.ps1
@@ -0,0 +1,5 @@
+copy ..\samples\ControlCatalog.NetCore\bin\Debug\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netcoreapp2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.gtk3\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.win32\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Debug\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.skia\$args\lib\netstandard2.0\
diff --git a/scripts/ReplaceNugetCache.sh b/scripts/ReplaceNugetCache.sh
new file mode 100755
index 0000000000..d50f4152e8
--- /dev/null
+++ b/scripts/ReplaceNugetCache.sh
@@ -0,0 +1,8 @@
+ #!/usr/bin/env bash
+
+ cp ../samples/ControlCatalog.NetCore/bin/Debug/netcoreapp2.0/Avalonia**.dll ~/.nuget/packages/avalonia/$1/lib/netcoreapp2.0/
+ cp ../samples/ControlCatalog.NetCore/bin/Debug/netcoreapp2.0/Avalonia**.dll ~/.nuget/packages/avalonia/$1/lib/netstandard2.0/
+ cp ../samples/ControlCatalog.NetCore/bin/Debug/netcoreapp2.0/Avalonia**.dll ~/.nuget/packages/avalonia.gtk3/$1/lib/netstandard2.0/
+ cp ../samples/ControlCatalog.NetCore/bin/Debug/netcoreapp2.0/Avalonia**.dll ~/.nuget/packages/avalonia.skia/$1/lib/netstandard2.0/
+
+
diff --git a/scripts/ReplaceNugetCacheRelease.ps1 b/scripts/ReplaceNugetCacheRelease.ps1
new file mode 100644
index 0000000000..1c19e00400
--- /dev/null
+++ b/scripts/ReplaceNugetCacheRelease.ps1
@@ -0,0 +1,5 @@
+copy ..\samples\ControlCatalog.NetCore\bin\Release\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netcoreapp2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.gtk3\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.win32\$args\lib\netstandard2.0\
+copy ..\samples\ControlCatalog.NetCore.\bin\Release\netcoreapp2.0\Avalonia**.dll ~\.nuget\packages\avalonia.skia\$args\lib\netstandard2.0\
\ No newline at end of file
diff --git a/src/Android/Avalonia.Android/AndroidPlatform.cs b/src/Android/Avalonia.Android/AndroidPlatform.cs
index e9b4ad0a6d..7134e7d1b4 100644
--- a/src/Android/Avalonia.Android/AndroidPlatform.cs
+++ b/src/Android/Avalonia.Android/AndroidPlatform.cs
@@ -52,13 +52,11 @@ namespace Avalonia.Android
.Bind().ToTransient()
.Bind().ToSingleton()
.Bind().ToConstant(Instance)
- .Bind().ToConstant(ImmediateRenderer.Factory)
.Bind().ToConstant(new AndroidThreadingInterface())
.Bind().ToTransient()
.Bind().ToConstant(Instance)
.Bind().ToSingleton()
.Bind().ToConstant(new DefaultRenderLoop(60))
-
.Bind().ToConstant(new AssetLoader(app.GetType().Assembly));
SkiaPlatform.Initialize();
diff --git a/src/Android/Avalonia.Android/AndroidThreadingInterface.cs b/src/Android/Avalonia.Android/AndroidThreadingInterface.cs
index 6327be12a5..77dfc60b83 100644
--- a/src/Android/Avalonia.Android/AndroidThreadingInterface.cs
+++ b/src/Android/Avalonia.Android/AndroidThreadingInterface.cs
@@ -12,6 +12,7 @@ using Android.Runtime;
using Android.Views;
using Android.Widget;
using Avalonia.Platform;
+using Avalonia.Threading;
namespace Avalonia.Android
{
@@ -29,7 +30,7 @@ namespace Avalonia.Android
return;
}
- public IDisposable StartTimer(TimeSpan interval, Action tick)
+ public IDisposable StartTimer(DispatcherPriority priority, TimeSpan interval, Action tick)
{
if (interval.TotalMilliseconds < 10)
interval = TimeSpan.FromMilliseconds(10);
@@ -78,13 +79,13 @@ namespace Avalonia.Android
private void EnsureInvokeOnMainThread(Action action) => _handler.Post(action);
- public void Signal()
+ public void Signal(DispatcherPriority prio)
{
- EnsureInvokeOnMainThread(() => Signaled?.Invoke());
+ EnsureInvokeOnMainThread(() => Signaled?.Invoke(null));
}
public bool CurrentThreadIsLoopThread => Looper.MainLooper.Thread.Equals(Java.Lang.Thread.CurrentThread());
- public event Action Signaled;
+ public event Action Signaled;
}
}
\ No newline at end of file
diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj
index 4babdc8bff..05ea0e243f 100644
--- a/src/Android/Avalonia.Android/Avalonia.Android.csproj
+++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj
@@ -124,17 +124,13 @@
{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
Avalonia.Styling
-
- {bd43f7c0-396b-4aa1-bad9-dfde54d51298}
- Avalonia.Skia.Android
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
-
-
- $(MSBuildToolsPath)\Roslyn
-
\ No newline at end of file
diff --git a/src/Android/Avalonia.Android/Platform/SkiaPlatform/PopupImpl.cs b/src/Android/Avalonia.Android/Platform/SkiaPlatform/PopupImpl.cs
index efbc71b808..041d91043a 100644
--- a/src/Android/Avalonia.Android/Platform/SkiaPlatform/PopupImpl.cs
+++ b/src/Android/Avalonia.Android/Platform/SkiaPlatform/PopupImpl.cs
@@ -37,6 +37,12 @@ namespace Avalonia.Android.Platform.SkiaPlatform
UpdateParams();
}
+ public void SetMinMaxSize(Size minSize, Size maxSize)
+ {
+ }
+
+ public IScreenImpl Screen { get; }
+
public Point Position
{
get { return _position; }
@@ -104,7 +110,10 @@ namespace Avalonia.Android.Platform.SkiaPlatform
{
//Not supported
}
-
+ public void SetTopmost(bool value)
+ {
+ //Not supported
+ }
}
}
\ No newline at end of file
diff --git a/src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs b/src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs
index 0c62eb9060..6c8db17c71 100644
--- a/src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs
+++ b/src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs
@@ -13,6 +13,7 @@ using System.Reactive.Disposables;
using Avalonia.Android.Platform.Input;
using Avalonia.Controls;
using Avalonia.Controls.Platform.Surfaces;
+using Avalonia.Rendering;
namespace Avalonia.Android.Platform.SkiaPlatform
{
@@ -85,7 +86,12 @@ namespace Avalonia.Android.Platform.SkiaPlatform
public IPlatformHandle Handle => _view;
public IEnumerable Surfaces => new object[] {this};
-
+
+ public IRenderer CreateRenderer(IRenderRoot root)
+ {
+ return new ImmediateRenderer(root);
+ }
+
public virtual void Hide()
{
_view.Visibility = ViewStates.Invisible;
diff --git a/src/Android/Avalonia.Android/Platform/Specific/Helpers/AndroidTouchEventsHelper.cs b/src/Android/Avalonia.Android/Platform/Specific/Helpers/AndroidTouchEventsHelper.cs
index 0f90472bd0..71822a6f47 100644
--- a/src/Android/Avalonia.Android/Platform/Specific/Helpers/AndroidTouchEventsHelper.cs
+++ b/src/Android/Avalonia.Android/Platform/Specific/Helpers/AndroidTouchEventsHelper.cs
@@ -126,8 +126,6 @@ namespace Avalonia.Android.Platform.Specific.Helpers
return e.Action != MotionEventActions.Up;
}
- private Paint _paint;
-
public void Dispose()
{
HandleEvents = false;
diff --git a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
index e66c2800d3..80cbbc51ec 100644
--- a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
+++ b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
@@ -40,14 +40,11 @@ namespace Avalonia.Android
public partial class String
{
- // aapt resource value: 0x7f020002
- public static int ApplicationName = 2130837506;
-
// aapt resource value: 0x7f020001
- public static int Hello = 2130837505;
+ public static int ApplicationName = 2130837505;
// aapt resource value: 0x7f020000
- public static int library_name = 2130837504;
+ public static int Hello = 2130837504;
static String()
{
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
index 826f1f0132..359adaa1f0 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
@@ -143,19 +143,13 @@
{3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
Avalonia.Themes.Default
-
- {5fb2b005-0a7f-4dad-add4-3ed01444e63d}
- Avalonia.HtmlRenderer
-
-
- {bd43f7c0-396b-4aa1-bad9-dfde54d51298}
- Avalonia.Skia.Android
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
-
-
\ No newline at end of file
diff --git a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs
index 7973ad72e5..ad2cec2ae3 100644
--- a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs
+++ b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs
@@ -56,7 +56,7 @@ namespace Avalonia.AndroidTestApplication
{
Margin = new Thickness(30),
Background = Brushes.Yellow,
- Children = new Avalonia.Controls.Controls
+ Children =
{
new TextBlock
{
diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs b/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
index 91327cf941..e171dd6162 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
+++ b/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
@@ -28,8 +28,6 @@ namespace Avalonia.AndroidTestApplication
{
global::Avalonia.Android.Resource.String.ApplicationName = global::Avalonia.AndroidTestApplication.Resource.String.ApplicationName;
global::Avalonia.Android.Resource.String.Hello = global::Avalonia.AndroidTestApplication.Resource.String.Hello;
- global::Avalonia.Android.Resource.String.library_name = global::Avalonia.AndroidTestApplication.Resource.String.library_name;
- global::Splat.Resource.String.library_name = global::Avalonia.AndroidTestApplication.Resource.String.library_name;
}
public partial class Attribute
@@ -64,14 +62,11 @@ namespace Avalonia.AndroidTestApplication
public partial class String
{
- // aapt resource value: 0x7f030002
- public const int ApplicationName = 2130903042;
-
// aapt resource value: 0x7f030001
- public const int Hello = 2130903041;
+ public const int ApplicationName = 2130903041;
// aapt resource value: 0x7f030000
- public const int library_name = 2130903040;
+ public const int Hello = 2130903040;
static String()
{
diff --git a/src/Avalonia.Animation/Animatable.cs b/src/Avalonia.Animation/Animatable.cs
index 0231ffa0be..a27d996301 100644
--- a/src/Avalonia.Animation/Animatable.cs
+++ b/src/Avalonia.Animation/Animatable.cs
@@ -3,6 +3,13 @@
using System.Linq;
using Avalonia.Data;
+using System;
+using System.Reactive.Linq;
+using Avalonia.Collections;
+using Avalonia.Animation;
+using System.Collections.Generic;
+using System.Threading;
+using System.Collections.Concurrent;
namespace Avalonia.Animation
{
@@ -12,45 +19,90 @@ namespace Avalonia.Animation
public class Animatable : AvaloniaObject
{
///
- /// The property transitions for the control.
+ /// Initializes this object.
///
- private PropertyTransitions _propertyTransitions;
+ public Animatable()
+ {
+ Transitions = new Transitions();
+ AnimatableTimer = Timing.AnimationStateTimer
+ .Select(p =>
+ {
+ if (this._playState == PlayState.Pause)
+ {
+ return PlayState.Pause;
+ }
+ else return p;
+ })
+ .Publish()
+ .RefCount();
+ }
///
- /// Gets or sets the property transitions for the control.
+ /// The specific animations timer for this control.
///
- ///
- /// The property transitions for the control.
- ///
- public PropertyTransitions PropertyTransitions
+ ///
+ public IObservable AnimatableTimer;
+
+ ///
+ /// Defines the property.
+ ///
+ public static readonly DirectProperty PlayStateProperty =
+ AvaloniaProperty.RegisterDirect(
+ nameof(PlayState),
+ o => o.PlayState,
+ (o, v) => o.PlayState = v);
+
+ private PlayState _playState = PlayState.Run;
+
+ ///
+ /// Gets or sets the state of the animation for this
+ /// control.
+ ///
+ public PlayState PlayState
{
- get
- {
- return _propertyTransitions ?? (_propertyTransitions = new PropertyTransitions());
- }
+ get { return _playState; }
+ set { SetAndRaise(PlayStateProperty, ref _playState, value); }
- set
- {
- _propertyTransitions = value;
- }
}
+
///
- /// Reacts to a change in a value in order to animate the
- /// change if a is set for the property..
+ /// Defines the property.
+ ///
+ public static readonly DirectProperty> TransitionsProperty =
+ AvaloniaProperty.RegisterDirect>(
+ nameof(Transitions),
+ o => o.Transitions,
+ (o, v) => o.Transitions = v);
+
+ private IEnumerable _transitions = new AvaloniaList();
+
+ ///
+ /// Gets or sets the property transitions for the control.
+ ///
+ public IEnumerable Transitions
+ {
+ get { return _transitions; }
+ set { SetAndRaise(TransitionsProperty, ref _transitions, value); }
+ }
+
+ ///
+ /// Reacts to a change in a value in
+ /// order to animate the change if a is set for the property.
///
/// The event args.
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs e)
{
- if (e.Priority != BindingPriority.Animation && _propertyTransitions != null)
+ if (e.Priority != BindingPriority.Animation && Transitions != null)
{
- var match = _propertyTransitions.FirstOrDefault(x => x.Property == e.Property);
+ var match = Transitions.FirstOrDefault(x => x.Property == e.Property);
if (match != null)
{
- Animate.Property(this, e.Property, e.OldValue, e.NewValue, match.Easing, match.Duration);
+ match.Apply(this, e.OldValue, e.NewValue);
}
}
}
+
}
}
diff --git a/src/Avalonia.Animation/Animate.cs b/src/Avalonia.Animation/Animate.cs
deleted file mode 100644
index 3e23f635ce..0000000000
--- a/src/Avalonia.Animation/Animate.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-using System.Diagnostics;
-using System.Linq;
-using System.Reactive.Linq;
-using Avalonia.Data;
-using Avalonia.Threading;
-
-namespace Avalonia.Animation
-{
- ///
- /// Utilities for creating animations.
- ///
- public static class Animate
- {
- ///
- /// The number of frames per second.
- ///
- public const int FramesPerSecond = 60;
-
- ///
- /// The time span of each frame.
- ///
- private static readonly TimeSpan Tick = TimeSpan.FromSeconds(1.0 / FramesPerSecond);
-
- ///
- /// Initializes static members of the class.
- ///
- static Animate()
- {
- Stopwatch = new Stopwatch();
- Stopwatch.Start();
- Timer = Observable.Interval(Tick, AvaloniaScheduler.Instance)
- .Select(_ => Stopwatch.Elapsed)
- .Publish()
- .RefCount();
- }
-
- ///
- /// The stopwatch used to track time.
- ///
- ///
- /// The stopwatch used to track time.
- ///
- public static Stopwatch Stopwatch
- {
- get; }
-
- ///
- /// Gets the animation timer.
- ///
- ///
- /// The animation timer ticks times per second. The
- /// parameter passed to a subsciber is the time span since the animation system was
- /// initialized.
- ///
- ///
- /// The animation timer.
- ///
- public static IObservable Timer
- {
- get; }
-
- ///
- /// Gets a timer that fires every frame for the specified duration.
- ///
- /// The duration of the animation.
- ///
- /// An observable that notifies the subscriber of the progress along the animation.
- ///
- ///
- /// The parameter passed to the subscriber is the progress along the animation, with
- /// 0 being the start and 1 being the end. The observable is guaranteed to fire 0
- /// immediately on subscribe and 1 at the end of the duration.
- ///
- public static IObservable GetTimer(TimeSpan duration)
- {
- var startTime = Stopwatch.Elapsed.Ticks;
- var endTime = startTime + duration.Ticks;
- return Timer
- .TakeWhile(x => x.Ticks < endTime)
- .Select(x => (x.Ticks - startTime) / (double)duration.Ticks)
- .StartWith(0.0)
- .Concat(Observable.Return(1.0));
- }
-
- ///
- /// Animates a .
- ///
- /// The target object.
- /// The target property.
- /// The value of the property at the start of the animation.
- /// The value of the property at the end of the animation.
- /// The easing function to use.
- /// The duration of the animation.
- /// An that can be used to track or stop the animation.
- public static Animation Property(
- IAvaloniaObject target,
- AvaloniaProperty property,
- object start,
- object finish,
- IEasing easing,
- TimeSpan duration)
- {
- var o = GetTimer(duration).Select(progress => easing.Ease(progress, start, finish));
- return new Animation(o, target.Bind(property, o, BindingPriority.Animation));
- }
-
- ///
- /// Animates a .
- ///
- /// The property type.
- /// The target object.
- /// The target property.
- /// The value of the property at the start of the animation.
- /// The value of the property at the end of the animation.
- /// The easing function to use.
- /// The duration of the animation.
- /// An that can be used to track or stop the animation.
- public static Animation Property(
- IAvaloniaObject target,
- AvaloniaProperty property,
- T start,
- T finish,
- IEasing easing,
- TimeSpan duration)
- {
- var o = GetTimer(duration).Select(progress => easing.Ease(progress, start, finish));
- return new Animation(o, target.Bind(property, o, BindingPriority.Animation));
- }
- }
-}
diff --git a/src/Avalonia.Animation/Animation.cs b/src/Avalonia.Animation/Animation.cs
index 41e4e2fee1..aa436f5f4e 100644
--- a/src/Avalonia.Animation/Animation.cs
+++ b/src/Avalonia.Animation/Animation.cs
@@ -1,34 +1,139 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
+using Avalonia.Animation.Easings;
+using Avalonia.Animation;
+using Avalonia.Collections;
+using Avalonia.Metadata;
using System;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Reflection;
+using System.Linq;
namespace Avalonia.Animation
{
///
/// Tracks the progress of an animation.
///
- public class Animation : IObservable, IDisposable
+ public class Animation : AvaloniaList, IDisposable, IAnimation
{
+ private readonly static List<(Func Condition, Type Animator)> Animators = new List<(Func, Type)>
+ {
+ ( prop => typeof(double).IsAssignableFrom(prop.PropertyType), typeof(DoubleAnimator) )
+ };
+
+ public static void RegisterAnimator(Func condition)
+ where TAnimator: IAnimator
+ {
+ Animators.Insert(0, (condition, typeof(TAnimator)));
+ }
+
+ private static Type GetAnimatorType(AvaloniaProperty property)
+ {
+ foreach (var (condition, type) in Animators)
+ {
+ if (condition(property))
+ {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ private bool _isChildrenChanged = false;
+ private List _subscription = new List();
+ public AvaloniaList _animators { get; set; } = new AvaloniaList();
+
///
- /// The animation being tracked.
+ /// Run time of this animation.
///
- private readonly IObservable _inner;
+ public TimeSpan Duration { get; set; }
///
- /// The disposable used to cancel the animation.
+ /// Delay time for this animation.
///
- private readonly IDisposable _subscription;
+ public TimeSpan Delay { get; set; }
///
- /// Initializes a new instance of the class.
+ /// The repeat count for this animation.
///
- /// The animation observable being tracked.
- /// A disposable used to cancel the animation.
- public Animation(IObservable inner, IDisposable subscription)
+ public RepeatCount RepeatCount { get; set; }
+
+ ///
+ /// The playback direction for this animation.
+ ///
+ public PlaybackDirection PlaybackDirection { get; set; }
+
+ ///
+ /// The value fill mode for this animation.
+ ///
+ public FillMode FillMode { get; set; }
+
+ ///
+ /// Easing function to be used.
+ ///
+ public Easing Easing { get; set; } = new LinearEasing();
+
+ public Animation()
+ {
+ this.CollectionChanged += delegate { _isChildrenChanged = true; };
+ }
+
+ private void InterpretKeyframes()
{
- _inner = inner;
- _subscription = subscription;
+ var handlerList = new List<(Type, AvaloniaProperty)>();
+ var kfList = new List();
+
+ foreach (var keyframe in this)
+ {
+ foreach (var setter in keyframe)
+ {
+ var handler = GetAnimatorType(setter.Property);
+
+ if (handler == null)
+ {
+ throw new InvalidOperationException($"No animator registered for the property {setter.Property}. Add an animator to the Animation.Animators collection that matches this property to animate it.");
+ }
+
+ if (!handlerList.Contains((handler, setter.Property)))
+ handlerList.Add((handler, setter.Property));
+
+ var newKF = new AnimatorKeyFrame()
+ {
+ Handler = handler,
+ Property = setter.Property,
+ Cue = keyframe.Cue,
+ KeyTime = keyframe.KeyTime,
+ timeSpanSet = keyframe.timeSpanSet,
+ cueSet = keyframe.cueSet,
+ Value = setter.Value
+ };
+
+ kfList.Add(newKF);
+ }
+ }
+
+ var newAnimatorInstances = new List<(Type handler, AvaloniaProperty prop, IAnimator inst)>();
+
+ foreach (var handler in handlerList)
+ {
+ var newInstance = (IAnimator)Activator.CreateInstance(handler.Item1);
+ newInstance.Property = handler.Item2;
+ newAnimatorInstances.Add((handler.Item1, handler.Item2, newInstance));
+ }
+
+ foreach (var kf in kfList)
+ {
+ var parent = newAnimatorInstances.Where(p => p.handler == kf.Handler &&
+ p.prop == kf.Property)
+ .First();
+ parent.inst.Add(kf);
+ }
+
+ foreach(var instance in newAnimatorInstances)
+ _animators.Add(instance.inst);
+
}
///
@@ -36,20 +141,26 @@ namespace Avalonia.Animation
///
public void Dispose()
{
- _subscription.Dispose();
+ foreach (var sub in _subscription)
+ {
+ sub.Dispose();
+ }
}
- ///
- /// Notifies the provider that an observer is to receive notifications.
- ///
- /// The observer.
- ///
- /// A reference to an interface that allows observers to stop receiving notifications
- /// before the provider has finished sending them.
- ///
- public IDisposable Subscribe(IObserver observer)
+ ///
+ public IDisposable Apply(Animatable control, IObservable matchObs)
{
- return _inner.Subscribe(observer);
+ if (_isChildrenChanged)
+ {
+ InterpretKeyframes();
+ _isChildrenChanged = false;
+ }
+
+ foreach (IAnimator keyframes in _animators)
+ {
+ _subscription.Add(keyframes.Apply(this, control, matchObs));
+ }
+ return this;
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/AnimationExtensions.cs b/src/Avalonia.Animation/AnimationExtensions.cs
deleted file mode 100644
index eecca00605..0000000000
--- a/src/Avalonia.Animation/AnimationExtensions.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-
-namespace Avalonia.Animation
-{
- ///
- /// Defines animation extension methods.
- ///
- public static class AnimationExtensions
- {
- ///
- /// Returns a new for the specified
- /// using linear easing.
- ///
- /// The type of the .
- /// The property to animate.
- /// The animation duration in milliseconds.
- ///
- /// A that can be added to the
- /// collection.
- ///
- public static PropertyTransition Transition(this AvaloniaProperty property, int milliseconds)
- {
- return Transition(property, TimeSpan.FromMilliseconds(milliseconds));
- }
-
- ///
- /// Returns a new for the specified
- /// using linear easing.
- ///
- /// The type of the .
- /// The property to animate.
- /// The animation duration.
- ///
- /// A that can be added to the
- /// collection.
- ///
- public static PropertyTransition Transition(this AvaloniaProperty property, TimeSpan duration)
- {
- return new PropertyTransition(property, duration, LinearEasing.For());
- }
- }
-}
diff --git a/src/Avalonia.Animation/Animation`1.cs b/src/Avalonia.Animation/Animation`1.cs
deleted file mode 100644
index 37ac241e5c..0000000000
--- a/src/Avalonia.Animation/Animation`1.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-
-namespace Avalonia.Animation
-{
- ///
- /// Tracks the progress of an animation.
- ///
- /// The type of the value being animated./
- public class Animation : IObservable, IDisposable
- {
- ///
- /// The animation being tracked.
- ///
- private readonly IObservable _inner;
-
- ///
- /// The disposable used to cancel the animation.
- ///
- private readonly IDisposable _subscription;
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The animation observable being tracked.
- /// A disposable used to cancel the animation.
- public Animation(IObservable inner, IDisposable subscription)
- {
- _inner = inner;
- _subscription = subscription;
- }
-
- ///
- /// Cancels the animation.
- ///
- public void Dispose()
- {
- _subscription.Dispose();
- }
-
- ///
- /// Notifies the provider that an observer is to receive notifications.
- ///
- /// The observer.
- ///
- /// A reference to an interface that allows observers to stop receiving notifications
- /// before the provider has finished sending them.
- ///
- public IDisposable Subscribe(IObserver observer)
- {
- return _inner.Subscribe(observer);
- }
- }
-}
diff --git a/src/Avalonia.Animation/AnimatorKeyFrame.cs b/src/Avalonia.Animation/AnimatorKeyFrame.cs
new file mode 100644
index 0000000000..02457cb9aa
--- /dev/null
+++ b/src/Avalonia.Animation/AnimatorKeyFrame.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.ComponentModel;
+using Avalonia.Metadata;
+using Avalonia.Collections;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Defines a KeyFrame that is used for
+ /// objects.
+ ///
+ public class AnimatorKeyFrame
+ {
+ public Type Handler;
+ public Cue Cue;
+ public TimeSpan KeyTime;
+ internal bool timeSpanSet, cueSet;
+ public AvaloniaProperty Property;
+ public object Value;
+ }
+}
diff --git a/src/Avalonia.Animation/AnimatorStateMachine`1.cs b/src/Avalonia.Animation/AnimatorStateMachine`1.cs
new file mode 100644
index 0000000000..e37b0e592a
--- /dev/null
+++ b/src/Avalonia.Animation/AnimatorStateMachine`1.cs
@@ -0,0 +1,256 @@
+using System;
+using System.Linq;
+using Avalonia.Data;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Provides statefulness for an iteration of a keyframe animation.
+ ///
+ internal class AnimatorStateMachine : IObservable, IDisposable
+ {
+ object _lastInterpValue;
+ object _firstKFValue;
+
+ private ulong _delayTotalFrameCount;
+ private ulong _durationTotalFrameCount;
+ private ulong _delayFrameCount;
+ private ulong _durationFrameCount;
+ private ulong _repeatCount;
+ private ulong _currentIteration;
+
+ private bool _isLooping;
+ private bool _isRepeating;
+ private bool _isReversed;
+ private bool _checkLoopAndRepeat;
+ private bool _gotFirstKFValue;
+
+ private FillMode _fillMode;
+ private PlaybackDirection _animationDirection;
+ private KeyFramesStates _currentState;
+ private KeyFramesStates _savedState;
+ private Animator _parent;
+ private Animation _targetAnimation;
+ private Animatable _targetControl;
+ private T _neutralValue;
+ internal bool _unsubscribe = false;
+ private IObserver _targetObserver;
+
+ [Flags]
+ private enum KeyFramesStates
+ {
+ Initialize,
+ DoDelay,
+ DoRun,
+ RunForwards,
+ RunBackwards,
+ RunApplyValue,
+ RunComplete,
+ Pause,
+ Stop,
+ Disposed
+ }
+
+ public void Initialize(Animation animation, Animatable control, Animator keyframes)
+ {
+ _parent = keyframes;
+ _targetAnimation = animation;
+ _targetControl = control;
+ _neutralValue = (T)_targetControl.GetValue(_parent.Property);
+
+ _delayTotalFrameCount = (ulong)(animation.Delay.Ticks / Timing.FrameTick.Ticks);
+ _durationTotalFrameCount = (ulong)(animation.Duration.Ticks / Timing.FrameTick.Ticks);
+
+ switch (animation.RepeatCount.RepeatType)
+ {
+ case RepeatType.Loop:
+ _isLooping = true;
+ _checkLoopAndRepeat = true;
+ break;
+ case RepeatType.Repeat:
+ _isRepeating = true;
+ _checkLoopAndRepeat = true;
+ _repeatCount = animation.RepeatCount.Value;
+ break;
+ }
+
+ _isReversed = (animation.PlaybackDirection & PlaybackDirection.Reverse) != 0;
+ _animationDirection = _targetAnimation.PlaybackDirection;
+ _fillMode = _targetAnimation.FillMode;
+
+ if (_durationTotalFrameCount > 0)
+ _currentState = KeyFramesStates.DoDelay;
+ else
+ _currentState = KeyFramesStates.DoRun;
+ }
+
+ public void Step(PlayState _playState, Func Interpolator)
+ {
+ try
+ {
+ InternalStep(_playState, Interpolator);
+ }
+ catch (Exception e)
+ {
+ _targetObserver?.OnError(e);
+ }
+ }
+
+ private void InternalStep(PlayState _playState, Func Interpolator)
+ {
+ if (!_gotFirstKFValue)
+ {
+ _firstKFValue = _parent.First().Value;
+ _gotFirstKFValue = true;
+ }
+
+ if (_currentState == KeyFramesStates.Disposed)
+ throw new InvalidProgramException("This KeyFrames Animation is already disposed.");
+
+ if (_playState == PlayState.Stop)
+ _currentState = KeyFramesStates.Stop;
+
+ // Save state and pause the machine
+ if (_playState == PlayState.Pause && _currentState != KeyFramesStates.Pause)
+ {
+ _savedState = _currentState;
+ _currentState = KeyFramesStates.Pause;
+ }
+
+ // Resume the previous state
+ if (_playState != PlayState.Pause && _currentState == KeyFramesStates.Pause)
+ _currentState = _savedState;
+
+ double _tempDuration = 0d, _easedTime;
+
+ checkstate:
+ switch (_currentState)
+ {
+ case KeyFramesStates.DoDelay:
+
+ if (_fillMode == FillMode.Backward
+ || _fillMode == FillMode.Both)
+ {
+ if (_currentIteration == 0)
+ {
+ _targetObserver.OnNext(_firstKFValue);
+ }
+ else
+ {
+ _targetObserver.OnNext(_lastInterpValue);
+ }
+ }
+
+ if (_delayFrameCount > _delayTotalFrameCount)
+ {
+ _currentState = KeyFramesStates.DoRun;
+ goto checkstate;
+ }
+ _delayFrameCount++;
+ break;
+
+ case KeyFramesStates.DoRun:
+
+ if (_isReversed)
+ _currentState = KeyFramesStates.RunBackwards;
+ else
+ _currentState = KeyFramesStates.RunForwards;
+
+ goto checkstate;
+
+ case KeyFramesStates.RunForwards:
+
+ if (_durationFrameCount > _durationTotalFrameCount)
+ {
+ _currentState = KeyFramesStates.RunComplete;
+ goto checkstate;
+ }
+
+ _tempDuration = (double)_durationFrameCount / _durationTotalFrameCount;
+ _currentState = KeyFramesStates.RunApplyValue;
+
+ goto checkstate;
+
+ case KeyFramesStates.RunBackwards:
+
+ if (_durationFrameCount > _durationTotalFrameCount)
+ {
+ _currentState = KeyFramesStates.RunComplete;
+ goto checkstate;
+ }
+
+ _tempDuration = (double)(_durationTotalFrameCount - _durationFrameCount) / _durationTotalFrameCount;
+ _currentState = KeyFramesStates.RunApplyValue;
+
+ goto checkstate;
+
+ case KeyFramesStates.RunApplyValue:
+
+ _easedTime = _targetAnimation.Easing.Ease(_tempDuration);
+
+ _durationFrameCount++;
+ _lastInterpValue = Interpolator(_easedTime, _neutralValue);
+ _targetObserver.OnNext(_lastInterpValue);
+ _currentState = KeyFramesStates.DoRun;
+
+ break;
+
+ case KeyFramesStates.RunComplete:
+
+ if (_checkLoopAndRepeat)
+ {
+ _delayFrameCount = 0;
+ _durationFrameCount = 0;
+
+ if (_isLooping)
+ {
+ _currentState = KeyFramesStates.DoRun;
+ }
+ else if (_isRepeating)
+ {
+ if (_currentIteration >= _repeatCount)
+ {
+ _currentState = KeyFramesStates.Stop;
+ }
+ else
+ {
+ _currentState = KeyFramesStates.DoRun;
+ }
+ _currentIteration++;
+ }
+
+ if (_animationDirection == PlaybackDirection.Alternate
+ || _animationDirection == PlaybackDirection.AlternateReverse)
+ _isReversed = !_isReversed;
+
+ break;
+ }
+
+ _currentState = KeyFramesStates.Stop;
+ goto checkstate;
+
+ case KeyFramesStates.Stop:
+
+ if (_fillMode == FillMode.Forward
+ || _fillMode == FillMode.Both)
+ {
+ _targetControl.SetValue(_parent.Property, _lastInterpValue, BindingPriority.LocalValue);
+ }
+ _targetObserver.OnCompleted();
+ break;
+ }
+ }
+
+ public IDisposable Subscribe(IObserver observer)
+ {
+ _targetObserver = observer;
+ return this;
+ }
+
+ public void Dispose()
+ {
+ _unsubscribe = true;
+ _currentState = KeyFramesStates.Disposed;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/Animator`1.cs b/src/Avalonia.Animation/Animator`1.cs
new file mode 100644
index 0000000000..6d4ae7d8e2
--- /dev/null
+++ b/src/Avalonia.Animation/Animator`1.cs
@@ -0,0 +1,192 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Avalonia.Collections;
+using System.ComponentModel;
+using Avalonia.Animation.Utils;
+using System.Reactive.Linq;
+using System.Linq;
+using Avalonia.Data;
+using System.Reactive.Disposables;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Base class for KeyFrames objects
+ ///
+ public abstract class Animator : AvaloniaList, IAnimator
+ {
+ ///
+ /// List of type-converted keyframes.
+ ///
+ private Dictionary _convertedKeyframes = new Dictionary();
+
+ private bool _isVerfifiedAndConverted;
+
+ ///
+ /// Gets or sets the target property for the keyframe.
+ ///
+ public AvaloniaProperty Property { get; set; }
+
+ public Animator()
+ {
+ // Invalidate keyframes when changed.
+ this.CollectionChanged += delegate { _isVerfifiedAndConverted = false; };
+ }
+
+ ///
+ public virtual IDisposable Apply(Animation animation, Animatable control, IObservable obsMatch)
+ {
+ if (!_isVerfifiedAndConverted)
+ VerifyConvertKeyFrames(animation, typeof(T));
+
+ return obsMatch
+ .Where(p => p == true)
+ // Ignore triggers when global timers are paused.
+ .Where(p => Timing.GetGlobalPlayState() != PlayState.Pause)
+ .Subscribe(_ =>
+ {
+ var timerObs = RunKeyFrames(animation, control);
+ });
+ }
+
+ ///
+ /// Get the nearest pair of cue-time ordered keyframes
+ /// according to the given time parameter that is relative to the
+ /// total animation time and the normalized intra-keyframe pair time
+ /// (i.e., the normalized time between the selected keyframes, relative to the
+ /// time parameter).
+ ///
+ /// The time parameter, relative to the total animation time
+ protected (double IntraKFTime, KeyFramePair KFPair) GetKFPairAndIntraKFTime(double t)
+ {
+ KeyValuePair firstCue, lastCue;
+ int kvCount = _convertedKeyframes.Count();
+ if (kvCount > 2)
+ {
+ if (DoubleUtils.AboutEqual(t, 0.0) || t < 0.0)
+ {
+ firstCue = _convertedKeyframes.First();
+ lastCue = _convertedKeyframes.Skip(1).First();
+ }
+ else if (DoubleUtils.AboutEqual(t, 1.0) || t > 1.0)
+ {
+ firstCue = _convertedKeyframes.Skip(kvCount - 2).First();
+ lastCue = _convertedKeyframes.Last();
+ }
+ else
+ {
+ firstCue = _convertedKeyframes.Where(j => j.Key <= t).Last();
+ lastCue = _convertedKeyframes.Where(j => j.Key >= t).First();
+ }
+ }
+ else
+ {
+ firstCue = _convertedKeyframes.First();
+ lastCue = _convertedKeyframes.Last();
+ }
+
+ double t0 = firstCue.Key;
+ double t1 = lastCue.Key;
+ var intraframeTime = (t - t0) / (t1 - t0);
+ return (intraframeTime, new KeyFramePair(firstCue, lastCue));
+ }
+
+
+ ///
+ /// Runs the KeyFrames Animation.
+ ///
+ private IDisposable RunKeyFrames(Animation animation, Animatable control)
+ {
+ var _kfStateMach = new AnimatorStateMachine();
+ _kfStateMach.Initialize(animation, control, this);
+
+ Timing.AnimationStateTimer
+ .TakeWhile(_ => !_kfStateMach._unsubscribe)
+ .Subscribe(p =>
+ {
+ _kfStateMach.Step(p, DoInterpolation);
+ });
+
+ return control.Bind(Property, _kfStateMach, BindingPriority.Animation);
+ }
+
+ ///
+ /// Interpolates a value given the desired time.
+ ///
+ protected abstract T DoInterpolation(double time, T neutralValue);
+
+ ///
+ /// Verifies and converts keyframe values according to this class's target type.
+ ///
+ private void VerifyConvertKeyFrames(Animation animation, Type type)
+ {
+ var typeConv = TypeDescriptor.GetConverter(type);
+
+ foreach (AnimatorKeyFrame k in this)
+ {
+ if (k.Value == null)
+ {
+ throw new ArgumentNullException($"KeyFrame value can't be null.");
+ }
+ if (!typeConv.CanConvertTo(k.Value.GetType()))
+ {
+ throw new InvalidCastException($"KeyFrame value doesnt match property type.");
+ }
+
+ T convertedValue = (T)typeConv.ConvertTo(k.Value, type);
+
+ Cue _normalizedCue = k.Cue;
+
+ if (k.timeSpanSet)
+ {
+ _normalizedCue = new Cue(k.KeyTime.Ticks / animation.Duration.Ticks);
+ }
+
+ _convertedKeyframes.Add(_normalizedCue.CueValue, (convertedValue, false));
+ }
+
+ SortKeyFrameCues(_convertedKeyframes);
+ _isVerfifiedAndConverted = true;
+
+ }
+
+ private void SortKeyFrameCues(Dictionary convertedValues)
+ {
+ bool hasStartKey, hasEndKey;
+ hasStartKey = hasEndKey = false;
+
+ // Make start and end keyframe mandatory.
+ foreach (var converted in _convertedKeyframes.Keys)
+ {
+ if (DoubleUtils.AboutEqual(converted, 0.0))
+ {
+ hasStartKey = true;
+ }
+ else if (DoubleUtils.AboutEqual(converted, 1.0))
+ {
+ hasEndKey = true;
+ }
+ }
+
+ if (!hasStartKey || !hasEndKey)
+ AddNeutralKeyFrames(hasStartKey, hasEndKey, _convertedKeyframes);
+
+ _convertedKeyframes = _convertedKeyframes.OrderBy(p => p.Key)
+ .ToDictionary((k) => k.Key, (v) => v.Value);
+ }
+
+ private void AddNeutralKeyFrames(bool hasStartKey, bool hasEndKey, Dictionary convertedKeyframes)
+ {
+ if (!hasStartKey)
+ {
+ convertedKeyframes.Add(0.0d, (default(T), true));
+ }
+
+ if (!hasEndKey)
+ {
+ convertedKeyframes.Add(1.0d, (default(T), true));
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/Avalonia.Animation.csproj b/src/Avalonia.Animation/Avalonia.Animation.csproj
index f02ec2f31c..46e41dd32a 100644
--- a/src/Avalonia.Animation/Avalonia.Animation.csproj
+++ b/src/Avalonia.Animation/Avalonia.Animation.csproj
@@ -1,35 +1,7 @@
- netstandard1.1
- false
+ netstandard2.0
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- bin\Debug\Avalonia.Animation.XML
- false
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- bin\Release\Avalonia.Animation.XML
- CS1591
- true
-
-
-
- Properties\SharedAssemblyInfo.cs
-
-
diff --git a/src/Avalonia.Animation/Cue.cs b/src/Avalonia.Animation/Cue.cs
new file mode 100644
index 0000000000..fe36b13495
--- /dev/null
+++ b/src/Avalonia.Animation/Cue.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Globalization;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// A Cue object for .
+ ///
+ [TypeConverter(typeof(CueTypeConverter))]
+ public struct Cue : IEquatable, IEquatable
+ {
+ ///
+ /// The normalized percent value, ranging from 0.0 to 1.0
+ ///
+ public double CueValue { get; }
+
+ ///
+ /// Sets a new object.
+ ///
+ ///
+ public Cue(double value)
+ {
+ if (value <= 1 && value >= 0)
+ CueValue = value;
+ else
+ throw new ArgumentException($"This cue object's value should be within or equal to 0.0 and 1.0");
+ }
+
+ ///
+ /// Parses a string to a object.
+ ///
+ public static object Parse(string value, CultureInfo culture)
+ {
+ string v = value;
+
+ if (value.EndsWith("%"))
+ {
+ v = v.TrimEnd('%');
+ }
+
+ if (double.TryParse(v, NumberStyles.Float, culture, out double res))
+ {
+ return new Cue(res / 100d);
+ }
+ else
+ {
+ throw new FormatException($"Invalid Cue string \"{value}\"");
+ }
+ }
+
+ ///
+ /// Checks for equality between two s.
+ ///
+ /// The second cue.
+ public bool Equals(Cue other)
+ {
+ return CueValue == other.CueValue;
+ }
+
+ ///
+ /// Checks for equality between a
+ /// and a value.
+ ///
+ ///
+ ///
+ public bool Equals(double other)
+ {
+ return CueValue == other;
+ }
+ }
+
+ public class CueTypeConverter : TypeConverter
+ {
+ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
+ {
+ return sourceType == typeof(string);
+ }
+
+ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
+ {
+ return Cue.Parse((string)value, culture);
+ }
+ }
+
+}
diff --git a/src/Avalonia.Animation/DoubleAnimator.cs b/src/Avalonia.Animation/DoubleAnimator.cs
new file mode 100644
index 0000000000..5b994377f1
--- /dev/null
+++ b/src/Avalonia.Animation/DoubleAnimator.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Linq;
+using System.Reactive.Linq;
+using System.Diagnostics;
+using Avalonia.Animation.Utils;
+using Avalonia.Data;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Animator that handles properties.
+ ///
+ public class DoubleAnimator : Animator
+ {
+
+ ///
+ protected override double DoInterpolation(double t, double neutralValue)
+ {
+ var pair = GetKFPairAndIntraKFTime(t);
+ double y0, y1;
+
+ var firstKF = pair.KFPair.FirstKeyFrame;
+ var secondKF = pair.KFPair.SecondKeyFrame;
+
+ if (firstKF.Value.isNeutral)
+ y0 = neutralValue;
+ else
+ y0 = firstKF.Value.TargetValue;
+
+ if (secondKF.Value.isNeutral)
+ y1 = neutralValue;
+ else
+ y1 = secondKF.Value.TargetValue;
+
+ // Do linear parametric interpolation
+ return y0 + (pair.IntraKFTime) * (y1 - y0);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/DoubleTransition.cs b/src/Avalonia.Animation/DoubleTransition.cs
new file mode 100644
index 0000000000..26f7f975e8
--- /dev/null
+++ b/src/Avalonia.Animation/DoubleTransition.cs
@@ -0,0 +1,23 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Metadata;
+using System;
+using System.Reactive.Linq;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Transition class that handles with types.
+ ///
+ public class DoubleTransition : Transition
+ {
+ ///
+ public override IObservable DoTransition(IObservable progress, double oldValue, double newValue)
+ {
+ var delta = newValue - oldValue;
+ return progress
+ .Select(p => Easing.Ease(p) * delta + oldValue);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BackEaseIn.cs b/src/Avalonia.Animation/Easing/BackEaseIn.cs
new file mode 100644
index 0000000000..a8d723d433
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BackEaseIn.cs
@@ -0,0 +1,20 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a overshooting cubic function.
+ ///
+ public class BackEaseIn : Easing
+ {
+ ///
+ public override double Ease(double p)
+ {
+ return p * (p * p - Math.Sin(p * Math.PI));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BackEaseInOut.cs b/src/Avalonia.Animation/Easing/BackEaseInOut.cs
new file mode 100644
index 0000000000..4844c2a0d1
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BackEaseInOut.cs
@@ -0,0 +1,31 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piecewise overshooting cubic function.
+ ///
+ public class BackEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (p < 0.5d)
+ {
+ double f = 2d * p;
+ return 0.5d * f * (f * f - Math.Sin(f * Math.PI));
+ }
+ else
+ {
+ double f = (1d - (2d * p - 1d));
+ return 0.5d * (1d - f * (f * f - Math.Sin(f * Math.PI))) + 0.5d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BackEaseOut.cs b/src/Avalonia.Animation/Easing/BackEaseOut.cs
new file mode 100644
index 0000000000..291c7c2541
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BackEaseOut.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a overshooting cubic function.
+ ///
+ public class BackEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = 1d - progress;
+ return 1 - p * (p * p - Math.Sin(p * Math.PI));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BounceEaseIn.cs b/src/Avalonia.Animation/Easing/BounceEaseIn.cs
new file mode 100644
index 0000000000..6aa6f171f5
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BounceEaseIn.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+
+using Avalonia.Animation.Utils;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a simulated bounce function.
+ ///
+ public class BounceEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return 1 - BounceEaseUtils.Bounce(1 - progress);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BounceEaseInOut.cs b/src/Avalonia.Animation/Easing/BounceEaseInOut.cs
new file mode 100644
index 0000000000..b393a4e7c7
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BounceEaseInOut.cs
@@ -0,0 +1,28 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Utils;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piecewise simulated bounce function.
+ ///
+ public class BounceEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ if (p < 0.5d)
+ {
+ return 0.5f * (1 - BounceEaseUtils.Bounce(1 - (p * 2)));
+ }
+ else
+ {
+ return 0.5f * BounceEaseUtils.Bounce(p * 2 - 1) + 0.5f;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/BounceEaseOut.cs b/src/Avalonia.Animation/Easing/BounceEaseOut.cs
new file mode 100644
index 0000000000..555c8d9c79
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/BounceEaseOut.cs
@@ -0,0 +1,19 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+using Avalonia.Animation.Utils;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a simulated bounce function.
+ ///
+ public class BounceEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return BounceEaseUtils.Bounce(progress);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CircularEaseIn.cs b/src/Avalonia.Animation/Easing/CircularEaseIn.cs
new file mode 100644
index 0000000000..1b22258099
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CircularEaseIn.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using the shifted fourth quadrant of
+ /// the unit circle.
+ ///
+ public class CircularEaseIn : Easing
+ {
+ ///
+ public override double Ease(double p)
+ {
+ return 1d - Math.Sqrt(1d - p * p);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CircularEaseInOut.cs b/src/Avalonia.Animation/Easing/CircularEaseInOut.cs
new file mode 100644
index 0000000000..156b634d3e
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CircularEaseInOut.cs
@@ -0,0 +1,29 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piecewise unit circle function.
+ ///
+ public class CircularEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ if (p < 0.5d)
+ {
+ return 0.5d * (1d - Math.Sqrt(1d - 4d * p * p));
+ }
+ else
+ {
+ double t = 2d * p;
+ return 0.5d * (Math.Sqrt((3d - t) * (t - 1d)) + 1d);
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CircularEaseOut.cs b/src/Avalonia.Animation/Easing/CircularEaseOut.cs
new file mode 100644
index 0000000000..2aa6161783
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CircularEaseOut.cs
@@ -0,0 +1,22 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using the shifted second quadrant of
+ /// the unit circle.
+ ///
+ public class CircularEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ return Math.Sqrt((2d - p) * p);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CubicEaseIn.cs b/src/Avalonia.Animation/Easing/CubicEaseIn.cs
new file mode 100644
index 0000000000..1997493fc0
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CubicEaseIn.cs
@@ -0,0 +1,18 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a cubic equation.
+ ///
+ public class CubicEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return progress * progress * progress;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CubicEaseInOut.cs b/src/Avalonia.Animation/Easing/CubicEaseInOut.cs
new file mode 100644
index 0000000000..be4d46d180
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CubicEaseInOut.cs
@@ -0,0 +1,28 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piece-wise cubic equation.
+ ///
+ public class CubicEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (progress < 0.5d)
+ {
+ return 4d * p * p * p;
+ }
+ else
+ {
+ double f = 2d * (p - 1);
+ return 0.5d * f * f * f + 1d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/CubicEaseOut.cs b/src/Avalonia.Animation/Easing/CubicEaseOut.cs
new file mode 100644
index 0000000000..cfa42afeb9
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/CubicEaseOut.cs
@@ -0,0 +1,19 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a cubic equation.
+ ///
+ public class CubicEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double f = (progress - 1d);
+ return f * f * f + 1d;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/Easing.cs b/src/Avalonia.Animation/Easing/Easing.cs
new file mode 100644
index 0000000000..62bcf723fb
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/Easing.cs
@@ -0,0 +1,56 @@
+using Avalonia.Collections;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Reflection;
+using System.Linq;
+using System.ComponentModel;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Base class for all Easing classes.
+ ///
+ [TypeConverter(typeof(EasingTypeConverter))]
+ public abstract class Easing : IEasing
+ {
+ ///
+ public abstract double Ease(double progress);
+
+ static Dictionary _easingTypes;
+
+ static readonly Type s_thisType = typeof(Easing);
+
+ ///
+ /// Parses a Easing type string.
+ ///
+ /// The Easing type string.
+ /// Returns the instance of the parsed type.
+ public static Easing Parse(string e)
+ {
+ if (_easingTypes == null)
+ {
+ _easingTypes = new Dictionary();
+
+ // Fetch the built-in easings.
+ var derivedTypes = typeof(Easing).Assembly.GetTypes()
+ .Where(p => p.Namespace == s_thisType.Namespace)
+ .Where(p => p.IsSubclassOf(s_thisType))
+ .Select(p => p).ToList();
+
+ foreach (var easingType in derivedTypes)
+ _easingTypes.Add(easingType.Name, easingType);
+ }
+
+ if (_easingTypes.ContainsKey(e))
+ {
+ var type = _easingTypes[e];
+ return (Easing)Activator.CreateInstance(type);
+ }
+ else
+ {
+ throw new FormatException($"Easing \"{e}\" was not found in {s_thisType.Namespace} namespace.");
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/EasingTypeConverter.cs b/src/Avalonia.Animation/Easing/EasingTypeConverter.cs
new file mode 100644
index 0000000000..70ddfd2699
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/EasingTypeConverter.cs
@@ -0,0 +1,23 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Easings;
+using System;
+using System.ComponentModel;
+using System.Globalization;
+
+namespace Avalonia.Animation.Easings
+{
+ public class EasingTypeConverter : TypeConverter
+ {
+ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
+ {
+ return sourceType == typeof(string);
+ }
+
+ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
+ {
+ return Easing.Parse((string)value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseIn.cs b/src/Avalonia.Animation/Easing/ElasticEaseIn.cs
new file mode 100644
index 0000000000..0dea7b20a7
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ElasticEaseIn.cs
@@ -0,0 +1,22 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Utils;
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a damped sine function.
+ ///
+ public class ElasticEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ return Math.Sin(13d * EasingUtils.HALFPI * p) * Math.Pow(2d, 10d * (p - 1));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseInOut.cs b/src/Avalonia.Animation/Easing/ElasticEaseInOut.cs
new file mode 100644
index 0000000000..b170cb2d6a
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ElasticEaseInOut.cs
@@ -0,0 +1,31 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+using Avalonia.Animation.Utils;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piecewise damped sine function.
+ ///
+ public class ElasticEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (p < 0.5d)
+ {
+ double t = 2d * p;
+ return 0.5d * Math.Sin(13d * EasingUtils.HALFPI * t) * Math.Pow(2d, 10d * (t - 1d));
+ }
+ else
+ {
+ return 0.5d * (Math.Sin(-13d * EasingUtils.HALFPI * ((2d * p - 1d) + 1d)) * Math.Pow(2d, -10d * (2d * p - 1d)) + 2d);
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseOut.cs b/src/Avalonia.Animation/Easing/ElasticEaseOut.cs
new file mode 100644
index 0000000000..31e31374a0
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ElasticEaseOut.cs
@@ -0,0 +1,22 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Utils;
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a damped sine function.
+ ///
+ public class ElasticEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ return Math.Sin(-13d * EasingUtils.HALFPI * (p + 1)) * Math.Pow(2d, -10d * p) + 1d;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseIn.cs b/src/Avalonia.Animation/Easing/ExponentialEaseIn.cs
new file mode 100644
index 0000000000..14977f6783
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ExponentialEaseIn.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a exponential function.
+ ///
+ public class ExponentialEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ return (p == 0.0d) ? p : Math.Pow(2d, 10d * (p - 1d));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs b/src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs
new file mode 100644
index 0000000000..64eb51e116
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs
@@ -0,0 +1,29 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piecewise exponential function.
+ ///
+ public class ExponentialEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (p < 0.5d)
+ {
+ return 0.5d * Math.Pow(2d, 20d * p - 10d);
+ }
+ else
+ {
+ return -0.5d * Math.Pow(2d, -20d * p + 10d) + 1d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseOut.cs b/src/Avalonia.Animation/Easing/ExponentialEaseOut.cs
new file mode 100644
index 0000000000..b89f8e9fa2
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/ExponentialEaseOut.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a exponential function.
+ ///
+ public class ExponentialEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ return (p == 1.0d) ? p : 1d - Math.Pow(2d, -10d * p);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/LinearEasing.cs b/src/Avalonia.Animation/Easing/LinearEasing.cs
new file mode 100644
index 0000000000..f7a90c0eef
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/LinearEasing.cs
@@ -0,0 +1,17 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Linearly eases a value.
+ ///
+ public class LinearEasing : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return progress;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseIn.cs b/src/Avalonia.Animation/Easing/QuadraticEaseIn.cs
new file mode 100644
index 0000000000..6c29b31516
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuadraticEaseIn.cs
@@ -0,0 +1,18 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a quadratic function.
+ ///
+ public class QuadraticEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return progress * progress;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs b/src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs
new file mode 100644
index 0000000000..16ba02cc20
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs
@@ -0,0 +1,27 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piece-wise quadratic function.
+ ///
+ public class QuadraticEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (progress < 0.5d)
+ {
+ return 2d * p * p;
+ }
+ else
+ {
+ return p * (-2d * p + 4d) - 1d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseOut.cs b/src/Avalonia.Animation/Easing/QuadraticEaseOut.cs
new file mode 100644
index 0000000000..5252b88cf3
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuadraticEaseOut.cs
@@ -0,0 +1,18 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a quadratic function.
+ ///
+ public class QuadraticEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return -(progress * (progress - 2d));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseIn.cs b/src/Avalonia.Animation/Easing/QuarticEaseIn.cs
new file mode 100644
index 0000000000..988fd1f7fb
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuarticEaseIn.cs
@@ -0,0 +1,19 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a quartic equation.
+ ///
+ public class QuarticEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p2 = progress * progress;
+ return p2 * p2;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseInOut.cs b/src/Avalonia.Animation/Easing/QuarticEaseInOut.cs
new file mode 100644
index 0000000000..0ad908f6bb
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuarticEaseInOut.cs
@@ -0,0 +1,30 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piece-wise quartic equation.
+ ///
+ public class QuarticEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+
+ if (p < 0.5d)
+ {
+ double p2 = p * p;
+ return 8d * p2 * p2;
+ }
+ else
+ {
+ double f = p - 1d;
+ double f2 = f * f;
+ return -8d * f2 * f2 + 1d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseOut.cs b/src/Avalonia.Animation/Easing/QuarticEaseOut.cs
new file mode 100644
index 0000000000..8499575653
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuarticEaseOut.cs
@@ -0,0 +1,20 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a quartic equation.
+ ///
+ public class QuarticEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double f = progress - 1d;
+ double f2 = f * f;
+ return -f2 * f2 + 1d;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseIn.cs b/src/Avalonia.Animation/Easing/QuinticEaseIn.cs
new file mode 100644
index 0000000000..4b0c598c69
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuinticEaseIn.cs
@@ -0,0 +1,19 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using a quartic equation.
+ ///
+ public class QuinticEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p2 = progress * progress;
+ return p2 * p2 * progress;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseInOut.cs b/src/Avalonia.Animation/Easing/QuinticEaseInOut.cs
new file mode 100644
index 0000000000..53c29f75dc
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuinticEaseInOut.cs
@@ -0,0 +1,29 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a piece-wise quartic equation.
+ ///
+ public class QuinticEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double p = progress;
+ if (p < 0.5d)
+ {
+ double p2 = p * p;
+ return 16d * p2 * p2 * p;
+ }
+ else
+ {
+ double f = 2d * p - 2d;
+ double f2 = f * f;
+ return 0.5d * f2 * f2 * f + 1d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseOut.cs b/src/Avalonia.Animation/Easing/QuinticEaseOut.cs
new file mode 100644
index 0000000000..1ad31a9623
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/QuinticEaseOut.cs
@@ -0,0 +1,20 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using a quartic equation.
+ ///
+ public class QuinticEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ double f = (progress - 1d);
+ double f2 = f * f;
+ return f2 * f2 * f + 1d;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/SineEaseIn.cs b/src/Avalonia.Animation/Easing/SineEaseIn.cs
new file mode 100644
index 0000000000..31a8f0ca94
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/SineEaseIn.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Utils;
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases in a value
+ /// using the quarter-wave of sine function.
+ ///
+ public class SineEaseIn : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return Math.Sin((progress - 1) * EasingUtils.HALFPI) + 1;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/SineEaseInOut.cs b/src/Avalonia.Animation/Easing/SineEaseInOut.cs
new file mode 100644
index 0000000000..51052575e2
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/SineEaseInOut.cs
@@ -0,0 +1,20 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases a value
+ /// using a half sine wave function.
+ ///
+ public class SineEaseInOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return 0.5d * (1d - Math.Cos(progress * Math.PI));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Easing/SineEaseOut.cs b/src/Avalonia.Animation/Easing/SineEaseOut.cs
new file mode 100644
index 0000000000..ed5a998e30
--- /dev/null
+++ b/src/Avalonia.Animation/Easing/SineEaseOut.cs
@@ -0,0 +1,22 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Utils;
+using System;
+
+namespace Avalonia.Animation.Easings
+{
+ ///
+ /// Eases out a value
+ /// using the quarter-wave of sine function
+ /// with shifted phase.
+ ///
+ public class SineEaseOut : Easing
+ {
+ ///
+ public override double Ease(double progress)
+ {
+ return Math.Sin(progress * EasingUtils.HALFPI);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/FillMode.cs b/src/Avalonia.Animation/FillMode.cs
new file mode 100644
index 0000000000..047d185db5
--- /dev/null
+++ b/src/Avalonia.Animation/FillMode.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ public enum FillMode
+ {
+ None,
+ Forward,
+ Backward,
+ Both
+ }
+}
diff --git a/src/Avalonia.Animation/FloatTransition.cs b/src/Avalonia.Animation/FloatTransition.cs
new file mode 100644
index 0000000000..b94295d311
--- /dev/null
+++ b/src/Avalonia.Animation/FloatTransition.cs
@@ -0,0 +1,23 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Metadata;
+using System;
+using System.Reactive.Linq;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Transition class that handles with types.
+ ///
+ public class FloatTransition : Transition
+ {
+ ///
+ public override IObservable DoTransition(IObservable progress, float oldValue, float newValue)
+ {
+ var delta = newValue - oldValue;
+ return progress
+ .Select(p => (float)Easing.Ease(p) * delta + oldValue);
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/IAnimation.cs b/src/Avalonia.Animation/IAnimation.cs
new file mode 100644
index 0000000000..4de7e46af5
--- /dev/null
+++ b/src/Avalonia.Animation/IAnimation.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Interface for Animation objects
+ ///
+ public interface IAnimation
+ {
+ ///
+ /// Apply the animation to the specified control
+ ///
+ IDisposable Apply(Animatable control, IObservable match);
+ }
+}
diff --git a/src/Avalonia.Animation/IAnimationSetter.cs b/src/Avalonia.Animation/IAnimationSetter.cs
new file mode 100644
index 0000000000..f2a94c9ed6
--- /dev/null
+++ b/src/Avalonia.Animation/IAnimationSetter.cs
@@ -0,0 +1,8 @@
+namespace Avalonia.Animation
+{
+ public interface IAnimationSetter
+ {
+ AvaloniaProperty Property { get; set; }
+ object Value { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/IAnimator.cs b/src/Avalonia.Animation/IAnimator.cs
new file mode 100644
index 0000000000..6acca4d697
--- /dev/null
+++ b/src/Avalonia.Animation/IAnimator.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Interface for Animator objects
+ ///
+ public interface IAnimator : IList
+ {
+ ///
+ /// The target property.
+ ///
+ AvaloniaProperty Property {get; set;}
+
+ ///
+ /// Applies the current KeyFrame group to the specified control.
+ ///
+ IDisposable Apply(Animation animation, Animatable control, IObservable obsMatch);
+ }
+}
diff --git a/src/Avalonia.Animation/IEasing.cs b/src/Avalonia.Animation/IEasing.cs
index 79a8197a4b..3c954a8cab 100644
--- a/src/Avalonia.Animation/IEasing.cs
+++ b/src/Avalonia.Animation/IEasing.cs
@@ -1,23 +1,16 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
-namespace Avalonia.Animation
+namespace Avalonia.Animation.Easings
{
///
- /// Defines the interface for easing functions.
+ /// Defines the interface for easing classes.
///
public interface IEasing
{
///
/// Returns the value of the transition for the specified progress.
///
- /// The progress of the transition, from 0 to 1.
- /// The start value of the transition.
- /// The end value of the transition.
- ///
- /// A value between and as determined
- /// by .
- ///
- object Ease(double progress, object start, object finish);
+ double Ease(double progress);
}
}
diff --git a/src/Avalonia.Animation/IEasing`1.cs b/src/Avalonia.Animation/IEasing`1.cs
deleted file mode 100644
index f59636edc9..0000000000
--- a/src/Avalonia.Animation/IEasing`1.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-namespace Avalonia.Animation
-{
- ///
- /// Defines the interface for easing functions.
- ///
- /// The type of the property being transitioned.
- public interface IEasing : IEasing
- {
- ///
- /// Returns the value of the transition for the specified progress.
- ///
- /// The progress of the transition, from 0 to 1.
- /// The start value of the transition.
- /// The end value of the transition.
- ///
- /// A value between and as determined
- /// by .
- ///
- T Ease(double progress, T start, T finish);
- }
-}
diff --git a/src/Avalonia.Animation/ITransition.cs b/src/Avalonia.Animation/ITransition.cs
new file mode 100644
index 0000000000..76f45e0c87
--- /dev/null
+++ b/src/Avalonia.Animation/ITransition.cs
@@ -0,0 +1,26 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Metadata;
+using System;
+using System.Reactive.Linq;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Interface for Transition objects.
+ ///
+ public interface ITransition
+ {
+ ///
+ /// Applies the transition to the specified .
+ ///
+ IDisposable Apply(Animatable control, object oldValue, object newValue);
+
+ ///
+ /// Gets the property to be animated.
+ ///
+ AvaloniaProperty Property { get; set; }
+
+ }
+}
diff --git a/src/Avalonia.Animation/IntegerTransition.cs b/src/Avalonia.Animation/IntegerTransition.cs
new file mode 100644
index 0000000000..200b93a3df
--- /dev/null
+++ b/src/Avalonia.Animation/IntegerTransition.cs
@@ -0,0 +1,23 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Metadata;
+using System;
+using System.Reactive.Linq;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Transition class that handles with types.
+ ///
+ public class IntegerTransition : Transition
+ {
+ ///
+ public override IObservable DoTransition(IObservable progress, int oldValue, int newValue)
+ {
+ var delta = newValue - oldValue;
+ return progress
+ .Select(p => (int)(Easing.Ease(p) * delta + oldValue));
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/KeyFrame.cs b/src/Avalonia.Animation/KeyFrame.cs
new file mode 100644
index 0000000000..46be119c36
--- /dev/null
+++ b/src/Avalonia.Animation/KeyFrame.cs
@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.ComponentModel;
+using Avalonia.Metadata;
+using Avalonia.Collections;
+
+namespace Avalonia.Animation
+{
+
+ ///
+ /// Stores data regarding a specific key
+ /// point and value in an animation.
+ ///
+ public class KeyFrame : AvaloniaList
+ {
+ internal bool timeSpanSet, cueSet;
+ private TimeSpan _ktimeSpan;
+ private Cue _kCue;
+
+ public KeyFrame()
+ {
+ }
+
+ public KeyFrame(IEnumerable items) : base(items)
+ {
+ }
+
+ public KeyFrame(params IAnimationSetter[] items) : base(items)
+ {
+ }
+
+ ///
+ /// Gets or sets the key time of this .
+ ///
+ /// The key time.
+ public TimeSpan KeyTime
+ {
+ get
+ {
+ return _ktimeSpan;
+ }
+ set
+ {
+ if (cueSet)
+ {
+ throw new InvalidOperationException($"You can only set either {nameof(KeyTime)} or {nameof(Cue)}.");
+ }
+ timeSpanSet = true;
+ _ktimeSpan = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the cue of this .
+ ///
+ /// The cue.
+ public Cue Cue
+ {
+ get
+ {
+ return _kCue;
+ }
+ set
+ {
+ if (timeSpanSet)
+ {
+ throw new InvalidOperationException($"You can only set either {nameof(KeyTime)} or {nameof(Cue)}.");
+ }
+ cueSet = true;
+ _kCue = value;
+ }
+ }
+
+
+ }
+
+}
diff --git a/src/Avalonia.Animation/KeyFramePair`1.cs b/src/Avalonia.Animation/KeyFramePair`1.cs
new file mode 100644
index 0000000000..c192479a1d
--- /dev/null
+++ b/src/Avalonia.Animation/KeyFramePair`1.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Avalonia.Collections;
+using System.ComponentModel;
+using Avalonia.Animation.Utils;
+using System.Reactive.Linq;
+using System.Linq;
+using Avalonia.Data;
+using System.Reactive.Disposables;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Represents a pair of keyframe, usually the
+ /// Start and End keyframes of a object.
+ ///
+ public struct KeyFramePair
+ {
+ ///
+ /// Initializes this
+ ///
+ ///
+ ///
+ public KeyFramePair(KeyValuePair FirstKeyFrame, KeyValuePair LastKeyFrame) : this()
+ {
+ this.FirstKeyFrame = FirstKeyFrame;
+ this.SecondKeyFrame = LastKeyFrame;
+ }
+
+ ///
+ /// First object.
+ ///
+ public KeyValuePair FirstKeyFrame { get; private set; }
+
+ ///
+ /// Second object.
+ ///
+ public KeyValuePair SecondKeyFrame { get; private set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/LinearDoubleEasing.cs b/src/Avalonia.Animation/LinearDoubleEasing.cs
deleted file mode 100644
index bae01b7ec7..0000000000
--- a/src/Avalonia.Animation/LinearDoubleEasing.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-namespace Avalonia.Animation
-{
- ///
- /// Linearly eases a double value.
- ///
- public class LinearDoubleEasing : IEasing
- {
- ///
- /// Returns the value of the transition for the specified progress.
- ///
- /// The progress of the transition, from 0 to 1.
- /// The start value of the transition.
- /// The end value of the transition.
- ///
- /// A value between and as determined
- /// by .
- ///
- public double Ease(double progress, double start, double finish)
- {
- return ((finish - start) * progress) + start;
- }
-
- ///
- /// Returns the value of the transition for the specified progress.
- ///
- /// The progress of the transition, from 0 to 1.
- /// The start value of the transition.
- /// The end value of the transition.
- ///
- /// A value between and as determined
- /// by .
- ///
- object IEasing.Ease(double progress, object start, object finish)
- {
- return Ease(progress, (double)start, (double)finish);
- }
- }
-}
diff --git a/src/Avalonia.Animation/LinearEasing.cs b/src/Avalonia.Animation/LinearEasing.cs
deleted file mode 100644
index 04583af106..0000000000
--- a/src/Avalonia.Animation/LinearEasing.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-
-namespace Avalonia.Animation
-{
- ///
- /// Returns a linear for the specified type.
- ///
- ///
- /// Unfortunately this class is needed as there's no way to create a true generic easing
- /// function at compile time, as mathematical operators don't have an interface.
- ///
- public static class LinearEasing
- {
- ///
- /// A linear easing function for the specified type.
- ///
- /// The type.
- /// An easing function.
- public static IEasing For()
- {
- if (typeof(T) == typeof(double))
- {
- return (IEasing)new LinearDoubleEasing();
- }
- else
- {
- throw new NotSupportedException(
- $"Don't know how to create a LinearEasing for type '{typeof(T).FullName}'.");
- }
- }
- }
-}
diff --git a/src/Avalonia.Animation/PlayState.cs b/src/Avalonia.Animation/PlayState.cs
new file mode 100644
index 0000000000..a3a6eb34d7
--- /dev/null
+++ b/src/Avalonia.Animation/PlayState.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Determines the playback state of an animation.
+ ///
+ public enum PlayState
+ {
+ ///
+ /// The animation is running.
+ ///
+ Run,
+
+ ///
+ /// The animation is paused.
+ ///
+ Pause,
+
+ ///
+ /// The animation is stopped.
+ ///
+ Stop
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/PlaybackDirection.cs b/src/Avalonia.Animation/PlaybackDirection.cs
new file mode 100644
index 0000000000..39529323da
--- /dev/null
+++ b/src/Avalonia.Animation/PlaybackDirection.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Determines the playback direction of an animation.
+ ///
+ public enum PlaybackDirection
+ {
+ ///
+ /// The animation is played normally.
+ ///
+ Normal,
+
+ ///
+ /// The animation is played in reverse direction.
+ ///
+ Reverse,
+
+ ///
+ /// The animation is played forwards first, then backwards.
+ ///
+ Alternate,
+
+ ///
+ /// The animation is played backwards first, then forwards.
+ ///
+ AlternateReverse
+ }
+}
diff --git a/src/Avalonia.Animation/Properties/AssemblyInfo.cs b/src/Avalonia.Animation/Properties/AssemblyInfo.cs
index a41edcc7b1..59d1357bb3 100644
--- a/src/Avalonia.Animation/Properties/AssemblyInfo.cs
+++ b/src/Avalonia.Animation/Properties/AssemblyInfo.cs
@@ -1,6 +1,8 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
+using Avalonia.Metadata;
using System.Reflection;
-[assembly: AssemblyTitle("Avalonia.Animation")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
\ No newline at end of file
diff --git a/src/Avalonia.Animation/PropertyTransition.cs b/src/Avalonia.Animation/PropertyTransition.cs
deleted file mode 100644
index 7953dd20a9..0000000000
--- a/src/Avalonia.Animation/PropertyTransition.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-
-namespace Avalonia.Animation
-{
- ///
- /// Defines how a property should be animated using a transition.
- ///
- public class PropertyTransition
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// The property to be animated/
- /// The duration of the animation.
- /// The easing function to use.
- public PropertyTransition(AvaloniaProperty property, TimeSpan duration, IEasing easing)
- {
- Property = property;
- Duration = duration;
- Easing = easing;
- }
-
- ///
- /// Gets the property to be animated.
- ///
- ///
- /// The property to be animated.
- ///
- public AvaloniaProperty Property { get; }
-
- ///
- /// Gets the duration of the animation.
- ///
- ///
- /// The duration of the animation.
- ///
- public TimeSpan Duration { get; }
-
- ///
- /// Gets the easing function used.
- ///
- ///
- /// The easing function.
- ///
- public IEasing Easing { get; }
- }
-}
diff --git a/src/Avalonia.Animation/PropertyTransitions.cs b/src/Avalonia.Animation/PropertyTransitions.cs
deleted file mode 100644
index ea0c8f0467..0000000000
--- a/src/Avalonia.Animation/PropertyTransitions.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using Avalonia.Collections;
-
-namespace Avalonia.Animation
-{
- ///
- /// A collection of definitions.
- ///
- public class PropertyTransitions : AvaloniaList
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public PropertyTransitions()
- {
- ResetBehavior = ResetBehavior.Remove;
- }
- }
-}
diff --git a/src/Avalonia.Animation/RepeatCount.cs b/src/Avalonia.Animation/RepeatCount.cs
new file mode 100644
index 0000000000..2050513df2
--- /dev/null
+++ b/src/Avalonia.Animation/RepeatCount.cs
@@ -0,0 +1,202 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Utilities;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Globalization;
+using System.Linq;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Defines the valid modes for a .
+ ///
+ public enum RepeatType
+ {
+ None,
+ Repeat,
+ Loop
+ }
+
+ ///
+ /// Determines the number of iterations of an animation.
+ /// Also defines its repeat behavior.
+ ///
+ [TypeConverter(typeof(RepeatCountTypeConverter))]
+ public struct RepeatCount : IEquatable
+ {
+ private readonly RepeatType _type;
+ private readonly ulong _value;
+
+ ///
+ /// Initializes a new instance of the struct.
+ ///
+ /// The number of iterations of an animation.
+ public RepeatCount(ulong value)
+ : this(value, RepeatType.Repeat)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the struct.
+ ///
+ /// The size of the RepeatCount.
+ /// The unit of the RepeatCount.
+ public RepeatCount(ulong value, RepeatType type)
+ {
+ if (type < RepeatType.None || type > RepeatType.Loop)
+ {
+ throw new ArgumentException("Invalid value", "type");
+ }
+
+ _type = type;
+ _value = value;
+ }
+
+ ///
+ /// Gets an instance of that indicates that an animation
+ /// should repeat forever.
+ ///
+ public static RepeatCount Loop => new RepeatCount(0, RepeatType.Loop);
+
+ ///
+ /// Gets an instance of that indicates that an animation
+ /// should not repeat.
+ ///
+ public static RepeatCount None => new RepeatCount(0, RepeatType.None);
+
+ ///
+ /// Gets the unit of the .
+ ///
+ public RepeatType RepeatType => _type;
+
+ ///
+ /// Gets a value that indicates whether the is set to loop.
+ ///
+ public bool IsLoop => _type == RepeatType.Loop;
+
+ ///
+ /// Gets a value that indicates whether the is set to not repeat.
+ ///
+ public bool IsNone => _type == RepeatType.None;
+
+ ///
+ /// Gets the number of repeat iterations.
+ ///
+ public ulong Value => _value;
+
+ ///
+ /// Compares two RepeatCount structures for equality.
+ ///
+ /// The first RepeatCount.
+ /// The second RepeatCount.
+ /// True if the structures are equal, otherwise false.
+ public static bool operator ==(RepeatCount a, RepeatCount b)
+ {
+ return (a.IsNone && b.IsNone) && (a.IsLoop && b.IsLoop)
+ || (a._value == b._value && a._type == b._type);
+ }
+
+ ///
+ /// Compares two RepeatCount structures for inequality.
+ ///
+ /// The first RepeatCount.
+ /// The first RepeatCount.
+ /// True if the structures are unequal, otherwise false.
+ public static bool operator !=(RepeatCount rc1, RepeatCount rc2)
+ {
+ return !(rc1 == rc2);
+ }
+
+ ///
+ /// Determines whether the is equal to the specified object.
+ ///
+ /// The object with which to test equality.
+ /// True if the objects are equal, otherwise false.
+ public override bool Equals(object o)
+ {
+ if (o == null)
+ {
+ return false;
+ }
+
+ if (!(o is RepeatCount))
+ {
+ return false;
+ }
+
+ return this == (RepeatCount)o;
+ }
+
+ ///
+ /// Compares two RepeatCount structures for equality.
+ ///
+ /// The structure with which to test equality.
+ /// True if the structures are equal, otherwise false.
+ public bool Equals(RepeatCount RepeatCount)
+ {
+ return this == RepeatCount;
+ }
+
+ ///
+ /// Gets a hash code for the RepeatCount.
+ ///
+ /// The hash code.
+ public override int GetHashCode()
+ {
+ return _value.GetHashCode() ^ _type.GetHashCode();
+ }
+
+ ///
+ /// Gets a string representation of the .
+ ///
+ /// The string representation.
+ public override string ToString()
+ {
+ if (IsLoop)
+ {
+ return "Auto";
+ }
+ else if (IsNone)
+ {
+ return "None";
+ }
+
+ string s = _value.ToString();
+ return s;
+ }
+
+ ///
+ /// Parses a string to return a .
+ ///
+ /// The string.
+ /// The .
+ public static RepeatCount Parse(string s)
+ {
+ s = s.ToUpperInvariant().Trim();
+
+ if (s == "NONE")
+ {
+ return None;
+ }
+ else if (s.EndsWith("LOOP"))
+ {
+ return Loop;
+ }
+ else
+ {
+ if(s.StartsWith("-"))
+ throw new InvalidCastException("RepeatCount can't be a negative number.");
+
+ var value = ulong.Parse(s, CultureInfo.InvariantCulture);
+
+ if (value == 1)
+ return None;
+
+ return new RepeatCount(value);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/RepeatCountTypeConverter.cs b/src/Avalonia.Animation/RepeatCountTypeConverter.cs
new file mode 100644
index 0000000000..604e9b54e7
--- /dev/null
+++ b/src/Avalonia.Animation/RepeatCountTypeConverter.cs
@@ -0,0 +1,23 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Animation.Easings;
+using System;
+using System.ComponentModel;
+using System.Globalization;
+
+namespace Avalonia.Animation
+{
+ public class RepeatCountTypeConverter : TypeConverter
+ {
+ public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
+ {
+ return sourceType == typeof(string);
+ }
+
+ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
+ {
+ return RepeatCount.Parse((string)value);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/Timing.cs b/src/Avalonia.Animation/Timing.cs
new file mode 100644
index 0000000000..10d65cca7f
--- /dev/null
+++ b/src/Avalonia.Animation/Timing.cs
@@ -0,0 +1,123 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+using System.Diagnostics;
+using System.Linq;
+using System.Reactive.Linq;
+using Avalonia.Data;
+using Avalonia.Threading;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Provides global timing functions for animations.
+ ///
+ public static class Timing
+ {
+ static ulong _transitionsFrameCount;
+ static PlayState _globalState = PlayState.Run;
+
+ ///
+ /// The number of frames per second.
+ ///
+ public const int FramesPerSecond = 60;
+
+ ///
+ /// The time span of each frame.
+ ///
+ internal static readonly TimeSpan FrameTick = TimeSpan.FromSeconds(1.0 / FramesPerSecond);
+
+ ///
+ /// Initializes static members of the class.
+ ///
+ static Timing()
+ {
+ var globalTimer = Observable.Interval(FrameTick, AvaloniaScheduler.Instance);
+
+ AnimationStateTimer = globalTimer
+ .Select(_ =>
+ {
+ return _globalState;
+ })
+ .Publish()
+ .RefCount();
+
+ TransitionsTimer = globalTimer
+ .Select(p => _transitionsFrameCount++)
+ .Publish()
+ .RefCount();
+ }
+
+
+ ///
+ /// Sets the animation play state for all animations
+ ///
+ public static void SetGlobalPlayState(PlayState playState)
+ {
+ Dispatcher.UIThread.VerifyAccess();
+ _globalState = playState;
+ }
+
+ ///
+ /// Gets the animation play state for all animations
+ ///
+ public static PlayState GetGlobalPlayState()
+ {
+ Dispatcher.UIThread.VerifyAccess();
+ return _globalState;
+ }
+
+ ///
+ /// Gets the animation timer.
+ ///
+ ///
+ /// The animation timer triggers usually at 60 times per second or as
+ /// defined in .
+ /// The parameter passed to a subsciber is the current playstate of the animation.
+ ///
+ internal static IObservable AnimationStateTimer
+ {
+ get;
+ }
+
+ ///
+ /// Gets the transitions timer.
+ ///
+ ///
+ /// The transitions timer increments usually 60 times per second as
+ /// defined in .
+ /// The parameter passed to a subsciber is the number of frames since the animation system was
+ /// initialized.
+ ///
+ public static IObservable TransitionsTimer
+ {
+ get;
+ }
+
+ ///
+ /// Gets a timer that fires every frame for the specified duration with delay.
+ ///
+ ///
+ /// An observable that notifies the subscriber of the progress along the transition.
+ ///
+ ///
+ /// The parameter passed to the subscriber is the progress along the transition, with
+ /// 0 being the start and 1 being the end. The observable is guaranteed to fire 0
+ /// immediately on subscribe and 1 at the end of the duration.
+ ///
+ public static IObservable GetTransitionsTimer(Animatable control, TimeSpan duration, TimeSpan delay = default(TimeSpan))
+ {
+ var startTime = _transitionsFrameCount;
+ var _duration = (ulong)(duration.Ticks / FrameTick.Ticks);
+ var endTime = startTime + _duration;
+
+ return TransitionsTimer
+ .TakeWhile(x => x < endTime)
+ .Select(x => (double)(x - startTime) / _duration)
+ .StartWith(0.0)
+ .Concat(Observable.Return(1.0));
+ }
+
+ }
+}
diff --git a/src/Avalonia.Animation/Transition`1.cs b/src/Avalonia.Animation/Transition`1.cs
new file mode 100644
index 0000000000..5db3082deb
--- /dev/null
+++ b/src/Avalonia.Animation/Transition`1.cs
@@ -0,0 +1,68 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Metadata;
+using System;
+using System.Reactive.Linq;
+using Avalonia.Animation.Easings;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// Defines how a property should be animated using a transition.
+ ///
+ public abstract class Transition : AvaloniaObject, ITransition
+ {
+ private AvaloniaProperty _prop;
+ private Easing _easing;
+
+ ///
+ /// Gets the duration of the animation.
+ ///
+ public TimeSpan Duration { get; set; }
+
+ ///
+ /// Gets the easing class to be used.
+ ///
+ public Easing Easing
+ {
+ get
+ {
+ return _easing ?? (_easing = new LinearEasing());
+ }
+ set
+ {
+ _easing = value;
+ }
+ }
+
+ ///
+ public AvaloniaProperty Property
+ {
+ get
+ {
+ return _prop;
+ }
+ set
+ {
+ if (!(value.PropertyType.IsAssignableFrom(typeof(T))))
+ throw new InvalidCastException
+ ($"Invalid property type \"{typeof(T).Name}\" for this transition: {GetType().Name}.");
+
+ _prop = value;
+ }
+ }
+
+ ///
+ /// Apply interpolation to the property.
+ ///
+ public abstract IObservable DoTransition(IObservable progress, T oldValue, T newValue);
+
+ ///
+ public virtual IDisposable Apply(Animatable control, object oldValue, object newValue)
+ {
+ var transition = DoTransition(Timing.GetTransitionsTimer(control, Duration, TimeSpan.Zero), (T)oldValue, (T)newValue).Select(p => (object)p);
+ return control.Bind(Property, transition, Data.BindingPriority.Animation);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Avalonia.Animation/Transitions.cs b/src/Avalonia.Animation/Transitions.cs
new file mode 100644
index 0000000000..7e742fc0b4
--- /dev/null
+++ b/src/Avalonia.Animation/Transitions.cs
@@ -0,0 +1,21 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using Avalonia.Collections;
+
+namespace Avalonia.Animation
+{
+ ///
+ /// A collection of definitions.
+ ///
+ public class Transitions : AvaloniaList
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public Transitions()
+ {
+ ResetBehavior = ResetBehavior.Remove;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Utils/BounceEaseUtils.cs b/src/Avalonia.Animation/Utils/BounceEaseUtils.cs
new file mode 100644
index 0000000000..71b4ec4d94
--- /dev/null
+++ b/src/Avalonia.Animation/Utils/BounceEaseUtils.cs
@@ -0,0 +1,38 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Avalonia.Animation.Utils
+{
+ ///
+ /// Helper static class for BounceEase classes.
+ ///
+ internal static class BounceEaseUtils
+ {
+ ///
+ /// Returns the consequent value of
+ /// a simulated bounce function.
+ ///
+ /// The amount of progress from 0 to 1.
+ /// The result of the easing function
+ internal static double Bounce(double progress)
+ {
+ double p = progress;
+ if (p < 4d / 11.0d)
+ {
+ return (121d * p * p) / 16.0d;
+ }
+ else if (p < 8d / 11.0d)
+ {
+ return (363d / 40.0d * p * p) - (99d / 10.0d * p) + 17d / 5.0d;
+ }
+ else if (p < 9d / 10.0d)
+ {
+ return (4356d / 361.0d * p * p) - (35442d / 1805.0d * p) + 16061d / 1805.0d;
+ }
+ else
+ {
+ return (54d / 5.0d * p * p) - (513d / 25.0d * p) + 268d / 25.0d;
+ }
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Utils/DoubleUtils.cs b/src/Avalonia.Animation/Utils/DoubleUtils.cs
new file mode 100644
index 0000000000..67943b687d
--- /dev/null
+++ b/src/Avalonia.Animation/Utils/DoubleUtils.cs
@@ -0,0 +1,18 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Avalonia.Animation.Utils
+{
+ internal static class DoubleUtils
+ {
+ internal static bool AboutEqual(double x, double y)
+ {
+ double epsilon = Math.Max(Math.Abs(x), Math.Abs(y)) * 1E-15;
+ return Math.Abs(x - y) <= epsilon;
+ }
+ }
+}
diff --git a/src/Avalonia.Animation/Utils/EasingUtils.cs b/src/Avalonia.Animation/Utils/EasingUtils.cs
new file mode 100644
index 0000000000..d07ec3cdf4
--- /dev/null
+++ b/src/Avalonia.Animation/Utils/EasingUtils.cs
@@ -0,0 +1,18 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Avalonia.Animation.Utils
+{
+ ///
+ /// Helper static class for easing mathematical constants.
+ ///
+ internal static class EasingUtils
+ {
+ ///
+ /// Half of
+ ///
+ internal static double HALFPI = Math.PI / 2d;
+ }
+}
diff --git a/src/Avalonia.Base/AttachedProperty.cs b/src/Avalonia.Base/AttachedProperty.cs
index 9d4d40bfef..fdb04b6dfc 100644
--- a/src/Avalonia.Base/AttachedProperty.cs
+++ b/src/Avalonia.Base/AttachedProperty.cs
@@ -9,7 +9,7 @@ namespace Avalonia
/// An attached avalonia property.
///
/// The type of the property's value.
- public class AttachedProperty : StyledPropertyBase
+ public class AttachedProperty : StyledProperty
{
///
/// Initializes a new instance of the class.
@@ -35,11 +35,10 @@ namespace Avalonia
///
/// The owner type.
/// The property.
- public StyledProperty AddOwner() where TOwner : IAvaloniaObject
+ public new AttachedProperty AddOwner() where TOwner : IAvaloniaObject
{
- var result = new StyledProperty(this, typeof(TOwner));
- AvaloniaPropertyRegistry.Instance.Register(typeof(TOwner), result);
- return result;
+ AvaloniaPropertyRegistry.Instance.Register(typeof(TOwner), this);
+ return this;
}
}
}
diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 95be67c98c..26397a6f32 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -1,35 +1,11 @@
- netstandard1.1
- false
+ netstandard2.0
+ Avalonia.Base
+ Avalonia
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- bin\Debug\Avalonia.Base.XML
- CS1591
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
- bin\Release\Avalonia.Base.XML
- CS1591
- true
-
-
-
- Properties\SharedAssemblyInfo.cs
-
-
+
+
\ No newline at end of file
diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs
index 1bdf1eb5e3..48e72db126 100644
--- a/src/Avalonia.Base/AvaloniaObject.cs
+++ b/src/Avalonia.Base/AvaloniaObject.cs
@@ -12,7 +12,6 @@ using Avalonia.Diagnostics;
using Avalonia.Logging;
using Avalonia.Threading;
using Avalonia.Utilities;
-using System.Reactive.Concurrency;
namespace Avalonia
{
@@ -51,12 +50,29 @@ namespace Avalonia
///
private EventHandler _propertyChanged;
+ private DeferredSetter _directDeferredSetter;
+
+ ///
+ /// Delayed setter helper for direct properties. Used to fix #855.
+ ///
+ private DeferredSetter DirectPropertyDeferredSetter
+ {
+ get
+ {
+ return _directDeferredSetter ??
+ (_directDeferredSetter = new DeferredSetter());
+ }
+ }
+
+
///
/// Initializes a new instance of the class.
///
public AvaloniaObject()
{
- foreach (var property in AvaloniaPropertyRegistry.Instance.GetRegistered(this))
+ VerifyAccess();
+
+ void Notify(AvaloniaProperty property)
{
object value = property.IsDirect ?
((IDirectPropertyAccessor)property).GetValue(this) :
@@ -71,6 +87,16 @@ namespace Avalonia
property.NotifyInitialized(e);
}
+
+ foreach (var property in AvaloniaPropertyRegistry.Instance.GetRegistered(this))
+ {
+ Notify(property);
+ }
+
+ foreach (var property in AvaloniaPropertyRegistry.Instance.GetRegisteredAttached(this.GetType()))
+ {
+ Notify(property);
+ }
}
///
@@ -113,8 +139,9 @@ namespace Avalonia
{
_inheritanceParent.PropertyChanged -= ParentPropertyChanged;
}
-
- var inherited = (from property in AvaloniaPropertyRegistry.Instance.GetRegistered(this)
+ var properties = AvaloniaPropertyRegistry.Instance.GetRegistered(this)
+ .Concat(AvaloniaPropertyRegistry.Instance.GetRegisteredAttached(this.GetType()));
+ var inherited = (from property in properties
where property.Inherits
select new
{
@@ -202,11 +229,6 @@ namespace Avalonia
}
else
{
- if (!AvaloniaPropertyRegistry.Instance.IsRegistered(this, property))
- {
- ThrowNotRegistered(property);
- }
-
return GetValueInternal(property);
}
}
@@ -224,6 +246,19 @@ namespace Avalonia
return (T)GetValue((AvaloniaProperty)property);
}
+ ///
+ /// Checks whether a is animating.
+ ///
+ /// The property.
+ /// True if the property is animating, otherwise false.
+ public bool IsAnimating(AvaloniaProperty property)
+ {
+ Contract.Requires(property != null);
+ VerifyAccess();
+
+ return _values.TryGetValue(property, out PriorityValue value) ? value.IsAnimating : false;
+ }
+
///
/// Checks whether a is set on this object.
///
@@ -310,9 +345,6 @@ namespace Avalonia
var description = GetDescription(source);
- var scheduler = AvaloniaLocator.Current.GetService() ?? ImmediateScheduler.Instance;
- source = source.ObserveOn(scheduler);
-
if (property.IsDirect)
{
if (property.IsReadOnly)
@@ -351,11 +383,6 @@ namespace Avalonia
{
PriorityValue v;
- if (!AvaloniaPropertyRegistry.Instance.IsRegistered(this, property))
- {
- ThrowNotRegistered(property);
- }
-
if (!_values.TryGetValue(property, out v))
{
v = CreatePriorityValue(property);
@@ -538,6 +565,45 @@ namespace Avalonia
}
}
+ ///
+ /// A callback type for encapsulating complex logic for setting direct properties.
+ ///
+ /// The type of the property.
+ /// The value to which to set the property.
+ /// The backing field for the property.
+ /// A wrapper for the property-changed notification.
+ protected delegate void SetAndRaiseCallback(T value, ref T field, Action notifyWrapper);
+
+ ///
+ /// Sets the backing field for a direct avalonia property, raising the
+ /// event if the value has changed.
+ ///
+ /// The type of the property.
+ /// The property.
+ /// The backing field.
+ /// A callback called to actually set the value to the backing field.
+ /// The value.
+ ///
+ /// True if the value changed, otherwise false.
+ ///
+ protected bool SetAndRaise(
+ AvaloniaProperty property,
+ ref T field,
+ SetAndRaiseCallback setterCallback,
+ T value)
+ {
+ Contract.Requires(setterCallback != null);
+ return DirectPropertyDeferredSetter.SetAndNotify(
+ property,
+ ref field,
+ (object val, ref T backing, Action notify) =>
+ {
+ setterCallback((T)val, ref backing, notify);
+ return true;
+ },
+ value);
+ }
+
///
/// Sets the backing field for a direct avalonia property, raising the
/// event if the value has changed.
@@ -552,17 +618,32 @@ namespace Avalonia
protected bool SetAndRaise(AvaloniaProperty property, ref T field, T value)
{
VerifyAccess();
- if (!object.Equals(field, value))
- {
- var old = field;
- field = value;
- RaisePropertyChanged(property, old, value, BindingPriority.LocalValue);
- return true;
- }
- else
- {
- return false;
- }
+ return SetAndRaise(
+ property,
+ ref field,
+ (T val, ref T backing, Action notifyWrapper)
+ => SetAndRaiseCore(property, ref backing, val, notifyWrapper),
+ value);
+ }
+
+ ///
+ /// Default assignment logic for SetAndRaise.
+ ///
+ /// The type of the property.
+ /// The property.
+ /// The backing field.
+ /// The value.
+ /// A wrapper for the property-changed notification.
+ ///
+ /// True if the value changed, otherwise false.
+ ///
+ private bool SetAndRaiseCore(AvaloniaProperty property, ref T field, T value, Action notifyWrapper)
+ {
+ var old = field;
+ field = value;
+
+ notifyWrapper(() => RaisePropertyChanged(property, old, value, BindingPriority.LocalValue));
+ return true;
}
///
@@ -622,7 +703,7 @@ namespace Avalonia
/// The default value.
private object GetDefaultValue(AvaloniaProperty property)
{
- if (property.Inherits && _inheritanceParent is AvaloniaObject aobj)
+ if (property.Inherits && InheritanceParent is AvaloniaObject aobj)
return aobj.GetValueInternal(property);
return ((IStyledPropertyAccessor) property).GetDefaultValue(GetType());
}
@@ -660,42 +741,41 @@ namespace Avalonia
/// The value.
private void SetDirectValue(AvaloniaProperty property, object value)
{
- var notification = value as BindingNotification;
-
- if (notification != null)
+ void Set()
{
- if (notification.ErrorType == BindingErrorType.Error)
- {
- Logger.Error(
- LogArea.Binding,
- this,
- "Error in binding to {Target}.{Property}: {Message}",
- this,
- property,
- ExceptionUtilities.GetMessage(notification.Error));
- }
+ var notification = value as BindingNotification;
- if (notification.HasValue)
+ if (notification != null)
{
+ notification.LogIfError(this, property);
value = notification.Value;
}
- }
- if (notification == null || notification.HasValue)
- {
- var metadata = (IDirectPropertyMetadata)property.GetMetadata(GetType());
- var accessor = (IDirectPropertyAccessor)GetRegistered(property);
- var finalValue = value == AvaloniaProperty.UnsetValue ?
- metadata.UnsetValue : value;
+ if (notification == null || notification.ErrorType == BindingErrorType.Error || notification.HasValue)
+ {
+ var metadata = (IDirectPropertyMetadata)property.GetMetadata(GetType());
+ var accessor = (IDirectPropertyAccessor)GetRegistered(property);
+ var finalValue = value == AvaloniaProperty.UnsetValue ?
+ metadata.UnsetValue : value;
- LogPropertySet(property, value, BindingPriority.LocalValue);
+ LogPropertySet(property, value, BindingPriority.LocalValue);
- accessor.SetValue(this, finalValue);
+ accessor.SetValue(this, finalValue);
+ }
+
+ if (notification != null)
+ {
+ UpdateDataValidation(property, notification);
+ }
}
- if (notification != null)
+ if (Dispatcher.UIThread.CheckAccess())
{
- UpdateDataValidation(property, notification);
+ Set();
+ }
+ else
+ {
+ Dispatcher.UIThread.Post(Set);
}
}
@@ -725,11 +805,6 @@ namespace Avalonia
var originalValue = value;
- if (!AvaloniaPropertyRegistry.Instance.IsRegistered(this, property))
- {
- ThrowNotRegistered(property);
- }
-
if (!TypeUtilities.TryConvertImplicit(property.PropertyType, value, out value))
{
throw new ArgumentException(string.Format(
@@ -757,18 +832,32 @@ namespace Avalonia
}
///
- /// Given a returns a registered avalonia property that is
- /// equal or throws if not found.
+ /// Given a direct property, returns a registered avalonia property that is equivalent or
+ /// throws if not found.
///
/// The property.
/// The registered property.
- public AvaloniaProperty GetRegistered(AvaloniaProperty property)
+ private AvaloniaProperty GetRegistered(AvaloniaProperty property)
{
- var result = AvaloniaPropertyRegistry.Instance.FindRegistered(this, property);
+ var direct = property as IDirectPropertyAccessor;
+
+ if (direct == null)
+ {
+ throw new AvaloniaInternalException(
+ "AvaloniaObject.GetRegistered should only be called for direct properties");
+ }
+
+ if (property.OwnerType.IsAssignableFrom(GetType()))
+ {
+ return property;
+ }
+
+ var result = AvaloniaPropertyRegistry.Instance.GetRegistered(this)
+ .FirstOrDefault(x => x == property);
if (result == null)
{
- ThrowNotRegistered(property);
+ throw new ArgumentException($"Property '{property.Name} not registered on '{this.GetType()}");
}
return result;
@@ -819,15 +908,5 @@ namespace Avalonia
value,
priority);
}
-
- ///
- /// Throws an exception indicating that the specified property is not registered on this
- /// object.
- ///
- /// The property
- private void ThrowNotRegistered(AvaloniaProperty p)
- {
- throw new ArgumentException($"Property '{p.Name} not registered on '{this.GetType()}");
- }
}
-}
\ No newline at end of file
+}
diff --git a/src/Avalonia.Base/AvaloniaObjectExtensions.cs b/src/Avalonia.Base/AvaloniaObjectExtensions.cs
index 685bf83a75..1da2ecb942 100644
--- a/src/Avalonia.Base/AvaloniaObjectExtensions.cs
+++ b/src/Avalonia.Base/AvaloniaObjectExtensions.cs
@@ -138,17 +138,9 @@ namespace Avalonia
AvaloniaProperty property,
BindingPriority priority = BindingPriority.LocalValue)
{
- // TODO: Subject.Create is not yet in stable Rx : once it is, remove the
- // AnonymousSubject classes and use Subject.Create.
- var output = new Subject();
- var result = new AnonymousSubject(
- Observer.Create(
- x => output.OnNext(x),
- e => output.OnError(e),
- () => output.OnCompleted()),
+ return Subject.Create(
+ Observer.Create(x => o.SetValue(property, x, priority)),
o.GetObservable(property));
- o.Bind(property, output, priority);
- return result;
}
///
@@ -169,17 +161,9 @@ namespace Avalonia
AvaloniaProperty property,
BindingPriority priority = BindingPriority.LocalValue)
{
- // TODO: Subject.Create is not yet in stable Rx : once it is, remove the
- // AnonymousSubject classes from this file and use Subject.Create.
- var output = new Subject();
- var result = new AnonymousSubject(
- Observer.Create(
- x => output.OnNext(x),
- e => output.OnError(e),
- () => output.OnCompleted()),
+ return Subject.Create(
+ Observer.Create(x => o.SetValue(property, x, priority)),
o.GetObservable(property));
- o.Bind(property, output, priority);
- return result;
}
///
@@ -326,7 +310,7 @@ namespace Avalonia
object anchor = null,
bool enableDataValidation = false)
{
- return new InstancedBinding(_source);
+ return InstancedBinding.OneWay(_source);
}
}
}
diff --git a/src/Avalonia.Base/AvaloniaProperty.cs b/src/Avalonia.Base/AvaloniaProperty.cs
index fb78e3b2a0..f7dabd3a43 100644
--- a/src/Avalonia.Base/AvaloniaProperty.cs
+++ b/src/Avalonia.Base/AvaloniaProperty.cs
@@ -311,7 +311,9 @@ namespace Avalonia
defaultBindingMode: defaultBindingMode);
var result = new AttachedProperty(name, typeof(TOwner), metadata, inherits);
- AvaloniaPropertyRegistry.Instance.Register(typeof(THost), result);
+ var registry = AvaloniaPropertyRegistry.Instance;
+ registry.Register(typeof(TOwner), result);
+ registry.RegisterAttached(typeof(THost), result);
return result;
}
@@ -344,7 +346,9 @@ namespace Avalonia
defaultBindingMode: defaultBindingMode);
var result = new AttachedProperty(name, ownerType, metadata, inherits);
- AvaloniaPropertyRegistry.Instance.Register(typeof(THost), result);
+ var registry = AvaloniaPropertyRegistry.Instance;
+ registry.Register(ownerType, result);
+ registry.RegisterAttached(typeof(THost), result);
return result;
}
diff --git a/src/Avalonia.Base/AvaloniaPropertyRegistry.cs b/src/Avalonia.Base/AvaloniaPropertyRegistry.cs
index 190b3ee2be..c0a4ace6ed 100644
--- a/src/Avalonia.Base/AvaloniaPropertyRegistry.cs
+++ b/src/Avalonia.Base/AvaloniaPropertyRegistry.cs
@@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Reflection;
using System.Runtime.CompilerServices;
namespace Avalonia
@@ -14,23 +13,14 @@ namespace Avalonia
///
public class AvaloniaPropertyRegistry
{
- ///
- /// The registered properties by type.
- ///
private readonly Dictionary> _registered =
new Dictionary>();
-
- ///
- /// The registered properties by type cached values to increase performance.
- ///
- private readonly Dictionary> _registeredCache =
- new Dictionary>();
-
- ///
- /// The registered attached properties by owner type.
- ///
private readonly Dictionary> _attached =
new Dictionary>();
+ private readonly Dictionary> _registeredCache =
+ new Dictionary>();
+ private readonly Dictionary> _attachedCache =
+ new Dictionary>();
///
/// Gets the instance
@@ -39,48 +29,68 @@ namespace Avalonia
= new AvaloniaPropertyRegistry();
///
- /// Gets all attached s registered by an owner.
+ /// Gets all non-attached s registered on a type.
///
- /// The owner type.
+ /// The type.
/// A collection of definitions.
- public IEnumerable GetAttached(Type ownerType)
+ public IEnumerable GetRegistered(Type type)
{
- Dictionary inner;
+ Contract.Requires(type != null);
+
+ if (_registeredCache.TryGetValue(type, out var result))
+ {
+ return result;
+ }
+
+ var t = type;
+ result = new List();
- if (_attached.TryGetValue(ownerType, out inner))
+ while (t != null)
{
- return inner.Values;
+ // Ensure the type's static ctor has been run.
+ RuntimeHelpers.RunClassConstructor(t.TypeHandle);
+
+ if (_registered.TryGetValue(t, out var registered))
+ {
+ result.AddRange(registered.Values);
+ }
+
+ t = t.BaseType;
}
- return Enumerable.Empty();
+ _registeredCache.Add(type, result);
+ return result;
}
///
- /// Gets all s registered on a type.
+ /// Gets all attached s registered on a type.
///
/// The type.
/// A collection of definitions.
- public IEnumerable GetRegistered(Type type)
+ public IEnumerable GetRegisteredAttached(Type type)
{
Contract.Requires(type != null);
- while (type != null)
+ if (_attachedCache.TryGetValue(type, out var result))
{
- // Ensure the type's static ctor has been run.
- RuntimeHelpers.RunClassConstructor(type.TypeHandle);
+ return result;
+ }
- Dictionary