();
+
+ var folders = new DirectoryInfo(publishDir).GetDirectories().ToList();
+
+ folders.RemoveAll(f => ignoredDirectories.Contains(f.Name));
+
+ foreach (var folder in folders)
+ {
+ var name = folder.Name;
+ var zipFileName = $"{publishDir}/{name}.zip";
+
+ AnsiConsole.MarkupLine($"{prompt} Packing 📂 [yellow]{name}[/]");
+
+ if (File.Exists(zipFileName))
+ File.Delete(zipFileName);
+
+ ZipFile.CreateFromDirectory(
+ folder.FullName,
+ zipFileName,
+ CompressionLevel.SmallestSize,
+ true
+ );
+
+ AnsiConsole.MarkupLine(
+ $" Packed to {Path.GetRelativePath(baseDir, zipFileName)}"
+ );
+
+ packTask.Increment((1.0 / folders.Count) * 100);
+ }
+
+ AnsiConsole.MarkupLine($"{prompt} Packing done.");
+
+ packTask.StopTask();
+ }
+ });
diff --git a/.csharpierrc.yaml b/.csharpierrc.yaml
new file mode 100644
index 0000000..8fade32
--- /dev/null
+++ b/.csharpierrc.yaml
@@ -0,0 +1,4 @@
+printWidth: 140
+useTabs: false
+tabWidth: 4
+endOfLine: auto
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index f0b6c0a..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,189 +0,0 @@
-
-file_header_template = Copyright (c) Crequency Studio. All Rights Reserved.\nLicense under the AGPL, Version 3.0.\nFile Name: {fileName}
-
-
-[*]
-end_of_line = lf
-charset = utf-8-bom
-trim_trailing_whitespace = true
-insert_final_newline = true
-indent_style = space
-indent_size = 4
-dotnet_style_qualification_for_field = false:silent
-dotnet_style_qualification_for_property = false:silent
-dotnet_style_qualification_for_method = false:silent
-dotnet_style_qualification_for_event = false:silent
-dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
-dotnet_code_quality_unused_parameters = all:suggestion
-dotnet_style_readonly_field = true:suggestion
-dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
-dotnet_style_allow_multiple_blank_lines_experimental = true:silent
-tab_width = 4
-dotnet_style_allow_statement_immediately_after_block_experimental = true:silent
-dotnet_style_operator_placement_when_wrapping = beginning_of_line
-dotnet_style_coalesce_expression = true:suggestion
-dotnet_style_null_propagation = true:suggestion
-dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
-dotnet_style_prefer_auto_properties = true:silent
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
-dotnet_style_prefer_conditional_expression_over_assignment = true:silent
-dotnet_style_prefer_conditional_expression_over_return = true:silent
-dotnet_style_explicit_tuple_names = true:suggestion
-dotnet_style_prefer_inferred_tuple_names = true:suggestion
-dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
-dotnet_style_prefer_compound_assignment = true:suggestion
-dotnet_style_prefer_simplified_interpolation = true:suggestion
-dotnet_style_namespace_match_folder = true:suggestion
-dotnet_style_predefined_type_for_locals_parameters_members = true:silent
-dotnet_style_predefined_type_for_member_access = true:silent
-dotnet_style_prefer_collection_expression = true:suggestion
-
-
-[*.cs]
-#### ������ʽ ####
-
-# ��������
-
-dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
-dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
-dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
-
-dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
-dotnet_naming_rule.types_should_be_pascal_case.symbols = types
-dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
-
-dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
-dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
-dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
-
-# ���Ź淶
-
-dotnet_naming_symbols.interface.applicable_kinds = interface
-dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interface.required_modifiers =
-
-dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
-dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types.required_modifiers =
-
-dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
-dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers =
-
-# ������ʽ
-
-dotnet_naming_style.begins_with_i.required_prefix = I
-dotnet_naming_style.begins_with_i.required_suffix =
-dotnet_naming_style.begins_with_i.word_separator =
-dotnet_naming_style.begins_with_i.capitalization = pascal_case
-
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
-dotnet_naming_style.pascal_case.capitalization = pascal_case
-
-dotnet_naming_style.pascal_case.required_prefix =
-dotnet_naming_style.pascal_case.required_suffix =
-dotnet_naming_style.pascal_case.word_separator =
-dotnet_naming_style.pascal_case.capitalization = pascal_case
-csharp_using_directive_placement = outside_namespace:silent
-csharp_style_expression_bodied_methods = when_on_single_line:silent
-csharp_style_expression_bodied_constructors = when_on_single_line:silent
-csharp_style_expression_bodied_operators = true:silent
-csharp_style_expression_bodied_properties = true:silent
-csharp_style_expression_bodied_indexers = true:silent
-csharp_style_expression_bodied_accessors = true:silent
-csharp_style_expression_bodied_lambdas = true:silent
-csharp_style_expression_bodied_local_functions = when_on_single_line:silent
-csharp_style_conditional_delegate_call = true:suggestion
-csharp_style_var_for_built_in_types = false:silent
-csharp_style_var_when_type_is_apparent = false:silent
-csharp_style_var_elsewhere = false:silent
-csharp_prefer_simple_using_statement = true:suggestion
-csharp_prefer_braces = true:silent
-csharp_style_namespace_declarations = block_scoped:silent
-csharp_style_prefer_method_group_conversion = true:silent
-csharp_style_prefer_top_level_statements = true:silent
-csharp_prefer_static_local_function = true:suggestion
-csharp_space_around_binary_operators = before_and_after
-csharp_indent_labels = one_less_than_current
-csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
-csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
-csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
-csharp_style_prefer_switch_expression = true:suggestion
-csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
-csharp_style_prefer_pattern_matching = true:silent
-csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
-csharp_style_prefer_not_pattern = true:suggestion
-csharp_style_prefer_extended_property_pattern = true:suggestion
-csharp_style_throw_expression = true:suggestion
-csharp_style_prefer_null_check_over_type_check = true:suggestion
-csharp_prefer_simple_default_expression = true:suggestion
-csharp_style_prefer_local_over_anonymous_function = true:suggestion
-csharp_style_prefer_index_operator = true:suggestion
-csharp_style_prefer_range_operator = true:suggestion
-csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
-csharp_style_prefer_tuple_swap = true:suggestion
-csharp_style_prefer_utf8_string_literals = true:suggestion
-csharp_style_inlined_variable_declaration = true:suggestion
-csharp_style_deconstructed_variable_declaration = true:suggestion
-csharp_style_unused_value_assignment_preference = discard_variable:suggestion
-csharp_style_unused_value_expression_statement_preference = discard_variable:silent
-csharp_style_prefer_readonly_struct = true:suggestion
-csharp_style_prefer_primary_constructors = true:suggestion
-csharp_style_prefer_readonly_struct_member = true:suggestion
-csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
-csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
-
-[*.vb]
-#### ������ʽ ####
-
-# ��������
-
-dotnet_naming_rule.interface_should_be_��_i_��ʼ.severity = suggestion
-dotnet_naming_rule.interface_should_be_��_i_��ʼ.symbols = interface
-dotnet_naming_rule.interface_should_be_��_i_��ʼ.style = ��_i_��ʼ
-
-dotnet_naming_rule.����_should_be_��˹��ƴд��.severity = suggestion
-dotnet_naming_rule.����_should_be_��˹��ƴд��.symbols = ����
-dotnet_naming_rule.����_should_be_��˹��ƴд��.style = ��˹��ƴд��
-
-dotnet_naming_rule.���ֶγ�Ա_should_be_��˹��ƴд��.severity = suggestion
-dotnet_naming_rule.���ֶγ�Ա_should_be_��˹��ƴд��.symbols = ���ֶγ�Ա
-dotnet_naming_rule.���ֶγ�Ա_should_be_��˹��ƴд��.style = ��˹��ƴд��
-
-# ���Ź淶
-
-dotnet_naming_symbols.interface.applicable_kinds = interface
-dotnet_naming_symbols.interface.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.interface.required_modifiers =
-
-dotnet_naming_symbols.����.applicable_kinds = class, struct, interface, enum
-dotnet_naming_symbols.����.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.����.required_modifiers =
-
-dotnet_naming_symbols.���ֶγ�Ա.applicable_kinds = property, event, method
-dotnet_naming_symbols.���ֶγ�Ա.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.���ֶγ�Ա.required_modifiers =
-
-# ������ʽ
-
-dotnet_naming_style.��_i_��ʼ.required_prefix = I
-dotnet_naming_style.��_i_��ʼ.required_suffix =
-dotnet_naming_style.��_i_��ʼ.word_separator =
-dotnet_naming_style.��_i_��ʼ.capitalization = pascal_case
-
-dotnet_naming_style.��˹��ƴд��.required_prefix =
-dotnet_naming_style.��˹��ƴд��.required_suffix =
-dotnet_naming_style.��˹��ƴд��.word_separator =
-dotnet_naming_style.��˹��ƴд��.capitalization = pascal_case
-
-dotnet_naming_style.��˹��ƴд��.required_prefix =
-dotnet_naming_style.��˹��ƴд��.required_suffix =
-dotnet_naming_style.��˹��ƴд��.word_separator =
-dotnet_naming_style.��˹��ƴд��.capitalization = pascal_case
diff --git a/KitX Clients/KitX Dashboard b/KitX Clients/KitX Dashboard
index 42277b1..6493ce1 160000
--- a/KitX Clients/KitX Dashboard
+++ b/KitX Clients/KitX Dashboard
@@ -1 +1 @@
-Subproject commit 42277b1c41e465b9c3ec2cc66fa7c4b02137720e
+Subproject commit 6493ce1630f96896ca7b9573e09ed5391f7c6ac7
diff --git a/KitX Clients/KitX Installer b/KitX Clients/KitX Installer
index 5b06184..94bdca7 160000
--- a/KitX Clients/KitX Installer
+++ b/KitX Clients/KitX Installer
@@ -1 +1 @@
-Subproject commit 5b06184ea538a12b129d37b9eeec7bbb418d263c
+Subproject commit 94bdca7fdf020c50aebf1b75f19d7b8a06cf7ba1
diff --git a/KitX Clients/KitX Mobile b/KitX Clients/KitX Mobile
index 33c8575..b3d1c19 160000
--- a/KitX Clients/KitX Mobile
+++ b/KitX Clients/KitX Mobile
@@ -1 +1 @@
-Subproject commit 33c8575330dd3fc47e8bfc87b3460565b0bb98cf
+Subproject commit b3d1c19f54bbacf6b1600f9f06cdc6ff5eb9646f
diff --git a/KitX Clients/KitX Website b/KitX Clients/KitX Website
index 4b62aed..0615941 160000
--- a/KitX Clients/KitX Website
+++ b/KitX Clients/KitX Website
@@ -1 +1 @@
-Subproject commit 4b62aed1aa9c9899ce7bc2320949e5f7aa706069
+Subproject commit 0615941ac539ff115d93ca1245f736407e28e977
diff --git a/KitX SDK b/KitX SDK
index 7e9c2fd..f82e010 160000
--- a/KitX SDK
+++ b/KitX SDK
@@ -1 +1 @@
-Subproject commit 7e9c2fddaf9d924f91b38465e9d3ac5971a8eeba
+Subproject commit f82e010fd3b7c7726122179fb346c2e98ecce9ea
diff --git a/KitX Standard b/KitX Standard
index f1c2634..bd9a2c0 160000
--- a/KitX Standard
+++ b/KitX Standard
@@ -1 +1 @@
-Subproject commit f1c26342235521032b5eb384a000e36d1567713d
+Subproject commit bd9a2c0b577deb894be87bc307a2fc8dbe02105a
diff --git a/KitX.code-workspace b/KitX.code-workspace
new file mode 100644
index 0000000..41c181a
--- /dev/null
+++ b/KitX.code-workspace
@@ -0,0 +1,29 @@
+{
+ "folders": [
+ {
+ "path": "."
+ }
+ ],
+ "settings": {
+ "git.autorefresh": true,
+ "dotnet.defaultSolution": "KitX.slnx",
+ "[python]": {
+ "editor.defaultFormatter": "ms-python.black-formatter"
+ },
+ "[csharp]": {
+ "editor.defaultFormatter": "csharpier.csharpier-vscode",
+ "editor.formatOnSave": true,
+ "editor.rulers": [140, 160]
+ },
+ "[xml]": {
+ "editor.defaultFormatter": "PrateekMahendrakar.prettyxml",
+ "editor.formatOnSave": true
+ },
+ "[xaml]": {
+ "editor.defaultFormatter": "PrateekMahendrakar.prettyxml",
+ "editor.formatOnSave": true
+ },
+ "prettyxml.settings.formatOnSave": true,
+ "prettyxml.settings.preserveWhiteSpacesInComment": true
+ }
+}
diff --git a/KitX.sln b/KitX.sln
index e9724fa..4d00b91 100644
--- a/KitX.sln
+++ b/KitX.sln
@@ -26,19 +26,36 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Update.Manual", "Ref
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Update.Replacer", "Reference\Common.Update\Common.Update.Replacer\Common.Update.Replacer.csproj", "{00E4BCFB-9FBC-44BC-8AA5-3A24E790B23F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Algorithm.Interop", "Reference\Common.Algorithm\Common.Algorithm.Interop\Common.Algorithm.Interop.csproj", "{9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Activity", "Reference\Common.Activity\Common.Activity\Common.Activity.csproj", "{C2489F7B-49C0-418C-8A63-0A6C134A3E08}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Clients", "KitX Clients", "{673CF32C-65BF-4EB3-83D3-47FEC77B47A0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Standard", "KitX Standard", "{37E33B90-88B7-4404-9D42-D672A2916E6C}"
+ ProjectSection(SolutionItems) = preProject
+ KitX Standard\.gitignore = KitX Standard\.gitignore
+ KitX Standard\LICENSE = KitX Standard\LICENSE
+ KitX Standard\README.md = KitX Standard\README.md
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX SDK", "KitX SDK", "{69E9C41D-1848-4F9F-8C9C-0CAC1C167336}"
+ ProjectSection(SolutionItems) = preProject
+ KitX SDK\.gitignore = KitX SDK\.gitignore
+ KitX SDK\.gitmodules = KitX SDK\.gitmodules
+ KitX SDK\LICENSE = KitX SDK\LICENSE
+ KitX SDK\README.md = KitX SDK\README.md
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Dashboard", "KitX Dashboard", "{0194E969-1457-4C16-AFAB-D2753DFA07F0}"
+ ProjectSection(SolutionItems) = preProject
+ KitX Clients\KitX Dashboard\.gitignore = KitX Clients\KitX Dashboard\.gitignore
+ KitX Clients\KitX Dashboard\LICENSE = KitX Clients\KitX Dashboard\LICENSE
+ KitX Clients\KitX Dashboard\README.md = KitX Clients\KitX Dashboard\README.md
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Contracts", "KitX Contracts", "{42654B2B-4B5A-4B78-BC0A-8D3B3D82EC9A}"
+ ProjectSection(SolutionItems) = preProject
+ KitX Standard\KitX Contracts\README.md = KitX Standard\KitX Contracts\README.md
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Script", "KitX Script", "{7C64F32B-E1EE-45F7-94A7-DA2AD9288249}"
EndProject
@@ -67,8 +84,18 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KitX.Dashboard", "KitX Clients\KitX Dashboard\KitX Dashboard\KitX.Dashboard.csproj", "{1DA8715C-E5A1-40CC-9C6C-F39E90A0C3E7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Loaders", "KitX Loaders", "{D6625876-40E0-4222-A6A9-4449BCA61D60}"
+ ProjectSection(SolutionItems) = preProject
+ KitX SDK\KitX Loaders\.gitignore = KitX SDK\KitX Loaders\.gitignore
+ KitX SDK\KitX Loaders\LICENSE = KitX SDK\KitX Loaders\LICENSE
+ KitX SDK\KitX Loaders\README.md = KitX SDK\KitX Loaders\README.md
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KitX Plugins", "KitX Plugins", "{447D9264-1F5D-4E66-801A-C43CA36B8D4F}"
+ ProjectSection(SolutionItems) = preProject
+ KitX SDK\KitX Plugins\.gitignore = KitX SDK\KitX Plugins\.gitignore
+ KitX SDK\KitX Plugins\LICENSE = KitX SDK\KitX Plugins\LICENSE
+ KitX SDK\KitX Plugins\README.md = KitX SDK\KitX Plugins\README.md
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KitX.Loader.CSharp", "KitX SDK\KitX Loaders\KitX.Loader.CSharp\KitX.Loader.CSharp.csproj", "{5A8A4A32-653E-4DC5-99CB-5F1E59737835}"
EndProject
@@ -94,6 +121,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KitX.Shared.CSharp", "KitX
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KitX.FileFormats.CSharp", "KitX Standard\KitX File Formats\KitX.FileFormats.CSharp\KitX.FileFormats.CSharp.csproj", "{78983ECE-5252-41C1-A8B3-6835FAF415F3}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generators", "Generators", "{FF0F9B42-7FFA-4113-AD0E-15955D89BFEA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KitX.Sdk.Generators.CSharp", "KitX SDK\Generators\KitX.Sdk.Generators.CSharp\KitX.Sdk.Generators.CSharp.csproj", "{DD575EF3-DF09-40A1-A89A-AB775D65A423}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Units", "Units", "{2E7D2566-EAFF-4921-A312-88CF0ABC40E6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SyncCodes", "KitX SDK\Utils\SyncCodes\SyncCodes.csproj", "{4D8ED1CF-E2FF-4666-88D5-7D5300014301}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KitX.Cheese", ".cheese\KitX.Cheese.csproj", "{4FF6F614-F88E-4621-9A30-F6A75873218D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specific", "Specific", "{B2234097-D037-4126-9CC0-F7ECF3FEEEA5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KitX.Dashboard.Specific.MsWindows", "KitX Clients\KitX Dashboard\Specific\KitX Dashboard Specific MsWindows\KitX.Dashboard.Specific.MsWindows.csproj", "{91F13EBC-53CE-4032-AAFC-268E90C32E5F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -188,26 +229,6 @@ Global
{00E4BCFB-9FBC-44BC-8AA5-3A24E790B23F}.Release|x64.Build.0 = Release|Any CPU
{00E4BCFB-9FBC-44BC-8AA5-3A24E790B23F}.Release|x86.ActiveCfg = Release|Any CPU
{00E4BCFB-9FBC-44BC-8AA5-3A24E790B23F}.Release|x86.Build.0 = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|ARM.Build.0 = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|ARM64.Build.0 = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|x64.Build.0 = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Debug|x86.Build.0 = Debug|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|Any CPU.Build.0 = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|ARM.ActiveCfg = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|ARM.Build.0 = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|ARM64.ActiveCfg = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|ARM64.Build.0 = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|x64.ActiveCfg = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|x64.Build.0 = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|x86.ActiveCfg = Release|Any CPU
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1}.Release|x86.Build.0 = Release|Any CPU
{C2489F7B-49C0-418C-8A63-0A6C134A3E08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2489F7B-49C0-418C-8A63-0A6C134A3E08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2489F7B-49C0-418C-8A63-0A6C134A3E08}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -628,6 +649,86 @@ Global
{78983ECE-5252-41C1-A8B3-6835FAF415F3}.Release|x64.Build.0 = Release|Any CPU
{78983ECE-5252-41C1-A8B3-6835FAF415F3}.Release|x86.ActiveCfg = Release|Any CPU
{78983ECE-5252-41C1-A8B3-6835FAF415F3}.Release|x86.Build.0 = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|ARM.Build.0 = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|x64.Build.0 = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Debug|x86.Build.0 = Debug|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|ARM.ActiveCfg = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|ARM.Build.0 = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|ARM64.Build.0 = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|x64.ActiveCfg = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|x64.Build.0 = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|x86.ActiveCfg = Release|Any CPU
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423}.Release|x86.Build.0 = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|ARM.Build.0 = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|x64.Build.0 = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Debug|x86.Build.0 = Debug|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|ARM.ActiveCfg = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|ARM.Build.0 = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|ARM64.Build.0 = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|x64.ActiveCfg = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|x64.Build.0 = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|x86.ActiveCfg = Release|Any CPU
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301}.Release|x86.Build.0 = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|x64.Build.0 = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Debug|x86.Build.0 = Debug|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|ARM.Build.0 = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|ARM64.Build.0 = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|x64.ActiveCfg = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|x64.Build.0 = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|x86.ActiveCfg = Release|Any CPU
+ {4FF6F614-F88E-4621-9A30-F6A75873218D}.Release|x86.Build.0 = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|x64.Build.0 = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Debug|x86.Build.0 = Debug|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|ARM.Build.0 = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|ARM64.Build.0 = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|x64.ActiveCfg = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|x64.Build.0 = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|x86.ActiveCfg = Release|Any CPU
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -637,7 +738,6 @@ Global
{F926585B-E9EC-4158-857E-E6310C70DCEE} = {F021B1E7-44AC-469B-AB4D-36541902C694}
{80C5352A-5ECD-4CC1-B6B2-033E624524DA} = {F021B1E7-44AC-469B-AB4D-36541902C694}
{00E4BCFB-9FBC-44BC-8AA5-3A24E790B23F} = {F021B1E7-44AC-469B-AB4D-36541902C694}
- {9EC8B0AF-3AD8-49FB-A9DA-154E6EA617C1} = {F021B1E7-44AC-469B-AB4D-36541902C694}
{C2489F7B-49C0-418C-8A63-0A6C134A3E08} = {F021B1E7-44AC-469B-AB4D-36541902C694}
{0194E969-1457-4C16-AFAB-D2753DFA07F0} = {673CF32C-65BF-4EB3-83D3-47FEC77B47A0}
{42654B2B-4B5A-4B78-BC0A-8D3B3D82EC9A} = {37E33B90-88B7-4404-9D42-D672A2916E6C}
@@ -668,6 +768,12 @@ Global
{21B43003-7DC5-4D0F-8097-0D0854BFD20D} = {37E33B90-88B7-4404-9D42-D672A2916E6C}
{B5E52F06-2E2A-4EF7-A56B-DAFD8B7DFC7E} = {21B43003-7DC5-4D0F-8097-0D0854BFD20D}
{78983ECE-5252-41C1-A8B3-6835FAF415F3} = {A0152BF5-A875-40C0-BD57-D99DDCDB5D4C}
+ {FF0F9B42-7FFA-4113-AD0E-15955D89BFEA} = {69E9C41D-1848-4F9F-8C9C-0CAC1C167336}
+ {DD575EF3-DF09-40A1-A89A-AB775D65A423} = {FF0F9B42-7FFA-4113-AD0E-15955D89BFEA}
+ {2E7D2566-EAFF-4921-A312-88CF0ABC40E6} = {69E9C41D-1848-4F9F-8C9C-0CAC1C167336}
+ {4D8ED1CF-E2FF-4666-88D5-7D5300014301} = {2E7D2566-EAFF-4921-A312-88CF0ABC40E6}
+ {B2234097-D037-4126-9CC0-F7ECF3FEEEA5} = {0194E969-1457-4C16-AFAB-D2753DFA07F0}
+ {91F13EBC-53CE-4032-AAFC-268E90C32E5F} = {B2234097-D037-4126-9CC0-F7ECF3FEEEA5}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {09BBC227-F41B-4D10-9E38-0EEE07ED17BC}
diff --git a/KitX.sln.DotSettings b/KitX.sln.DotSettings
new file mode 100644
index 0000000..33a532e
--- /dev/null
+++ b/KitX.sln.DotSettings
@@ -0,0 +1,5 @@
+
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/KitX.slnx b/KitX.slnx
new file mode 100644
index 0000000..01a3290
--- /dev/null
+++ b/KitX.slnx
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index 861ef8a..fbc4bad 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-
+
@@ -8,7 +8,7 @@
- Docs website: English | 简体中文
+ Docs website: English | 简体中文
🌐
@@ -179,6 +179,11 @@ cheese setup --reference
+
+Not Finished Versions
+
+
+
| Version | Info | Code | Support | Term | Require | Runs on |
|-----------------------------------------------------------------------------------|---------|-----------|--------------------|--------------------|---------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [v3.0.6187.47831](https://github.com/Crequency/KitX/releases/tag/v3.0.6187.47831) | Preview | Fly | :x: | 2022.04 -> 2023.04 | `Desktop`: .Net 6 (Also Self-Contained)
`Mobile`: Native |    |
@@ -186,7 +191,14 @@ cheese setup --reference
| [v3.22.04.6235](https://github.com/Crequency/KitX/releases/tag/v3.22.04.6235) | Release | Break | :x: | 2022.04 -> 2023.04 | `Desktop`: .Net 6 (Also Self-Contained)
`Mobile`: Native |    |
| [v3.22.04.6287](https://github.com/Crequency/KitX/releases/tag/v3.22.04.6287) | Release | Evolution | :x: | 2022.04 -> 2023.04 | `Desktop`: .Net 6 (Also Self-Contained)
`Mobile`: Native |    |
| [v3.23.04.6488](https://github.com/Crequency/KitX/releases/tag/v3.23.04.6488) | Release | ToYou | :white_check_mark: | 2023.04 -> 2024.04 | `Desktop`: .Net 6 (Also Self-Contained)
`Mobile`: Native |      |
-| v3.24.10.x | Release | - | developing | 2024.10 -> 2025.04 | `Desktop`: .Net 8 (Also Self-Contained)
`Mobile`: Native |       |
+
+
+
+
+
+| Version | Info | Code | Support | Term | Require | Runs on |
+|-----------------------------------------------------------------------------------|---------|-----------|--------------------|--------------------|---------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| v3.25.04.x | Release | - | developing | 2024.10 -> 2025.04 | `Desktop`: .Net 8 (Also Self-Contained)
`Mobile`: Native |       |
See details in [ChangeLog](./ChangeLog.md)