├── .config └── dotnet-tools.json ├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── appveyor.yml ├── build.cake ├── build.cmd ├── build.ps1 ├── build.sh ├── global.json └── src ├── .editorconfig ├── Directory.Build.props ├── Example.Tests ├── AnimalTests.cs └── Example.Tests.csproj ├── Example.sln └── Example ├── Animals ├── Cat.cs └── Dog.cs ├── Example.csproj └── IAnimal.cs /.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "cake.tool": { 6 | "version": "5.0.0", 7 | "commands": [ 8 | "dotnet-cake" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_size = 4 6 | indent_style = space 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | # This may not be needed, but kept for compatibility with VS 11 | [*.{sln,csproj}] 12 | end_of_line = crlf 13 | 14 | # Markdown files allows the use of trailing spaces to denote 15 | # a line break 16 | [*.md] 17 | trim_trailing_whitespace = false 18 | 19 | # Batch and powershell files requires crlf to be 20 | # used as the line ending. 21 | # Powershell also requires UTF-8 with BOM encoding 22 | # to function if utf8 characters is used (maibe batch files as well) 23 | [*.{bat,ps1}] 24 | charset = utf-8-bom 25 | end_of_line = crlf 26 | 27 | # Shell scripts requires the use of lf line endings 28 | # to be able to run. 29 | [*.sh] 30 | end_of_line = lf 31 | 32 | # The visual studio code file 33 | # requires the use of crlf line endings 34 | [tasks.json] 35 | end_of_line = crlf 36 | 37 | # xml indent 2 spaces 38 | [*.{xml,csproj,props,targets}] 39 | indent_size = 2 40 | indent_style = space 41 | tab_width = 2 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Misc folders 2 | [Bb]in/ 3 | [Oo]bj/ 4 | [Pp]ackages/ 5 | 6 | # Build related 7 | tools/** 8 | 9 | ## Ignore Visual Studio temporary files, build results, and 10 | ## files generated by popular Visual Studio add-ons. 11 | 12 | # User-specific files 13 | *.suo 14 | *.user 15 | *.sln.docstates 16 | *.sln.ide/ 17 | *.userprefs 18 | *.GhostDoc.xml 19 | .vs/ 20 | .idea/ 21 | 22 | # Build results 23 | [Dd]ebug/ 24 | [Rr]elease/ 25 | x64/ 26 | *_i.c 27 | *_p.c 28 | *.ilk 29 | *.meta 30 | *.obj 31 | *.pch 32 | *.pdb 33 | *.pgc 34 | *.pgd 35 | *.rsp 36 | *.sbr 37 | *.tlb 38 | *.tli 39 | *.tlh 40 | *.tmp 41 | *.log 42 | *.vspscc 43 | *.vssscc 44 | .builds 45 | 46 | # Visual Studio profiler 47 | *.psess 48 | *.vsp 49 | *.vspx 50 | 51 | # ReSharper is a .NET coding add-in 52 | _ReSharper* 53 | 54 | # NCrunch 55 | *.ncrunch* 56 | .*crunch*.local.xml 57 | _NCrunch_* 58 | 59 | # NuGet Packages Directory 60 | packages 61 | 62 | # Windows 63 | Thumbs.db 64 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 - 2016 Patrik Svensson, Mattias Karlsson, Gary Ewan Park and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cake example repository 2 | 3 | This repository is used as an minimal example of using the [Cake build system](https://cakebuild.net) 4 | 5 | You can read more in the Cake [Getting Started guide](https://cakebuild.net/docs/getting-started/setting-up-a-new-project). 6 | 7 | [![Build Status](https://ci.appveyor.com/api/projects/status/dfi1xib48d9diiac?svg=true)](https://ci.appveyor.com/project/cakebuild/example) 8 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.{build} 2 | image: Visual Studio 2022 3 | build_script: 4 | - cmd: PowerShell -Version 4.0 .\build.ps1 5 | test: off 6 | -------------------------------------------------------------------------------- /build.cake: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////// 2 | // ARGUMENTS 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | var target = Argument("target", "Default"); 6 | var configuration = Argument("configuration", "Release"); 7 | 8 | ////////////////////////////////////////////////////////////////////// 9 | // PREPARATION 10 | ////////////////////////////////////////////////////////////////////// 11 | 12 | // Define directories. 13 | var buildDir = Directory("./src/Example/bin") + Directory(configuration); 14 | 15 | ////////////////////////////////////////////////////////////////////// 16 | // TASKS 17 | ////////////////////////////////////////////////////////////////////// 18 | 19 | Task("Clean") 20 | .Does(() => 21 | { 22 | CleanDirectory(buildDir); 23 | }); 24 | 25 | Task("Restore-NuGet-Packages") 26 | .IsDependentOn("Clean") 27 | .Does(() => 28 | { 29 | DotNetRestore("./src/Example.sln"); 30 | }); 31 | 32 | Task("Build") 33 | .IsDependentOn("Restore-NuGet-Packages") 34 | .Does(() => 35 | { 36 | DotNetBuild("./src/Example.sln", new DotNetBuildSettings 37 | { 38 | Configuration = configuration, 39 | NoRestore = true, 40 | }); 41 | }); 42 | 43 | Task("Run-Unit-Tests") 44 | .IsDependentOn("Build") 45 | .Does(() => 46 | { 47 | DotNetTest("./src/Example.sln", new DotNetTestSettings 48 | { 49 | Configuration = configuration, 50 | NoRestore = true, 51 | }); 52 | }); 53 | 54 | ////////////////////////////////////////////////////////////////////// 55 | // TASK TARGETS 56 | ////////////////////////////////////////////////////////////////////// 57 | 58 | Task("Default") 59 | .IsDependentOn("Run-Unit-Tests"); 60 | 61 | ////////////////////////////////////////////////////////////////////// 62 | // EXECUTION 63 | ////////////////////////////////////////////////////////////////////// 64 | 65 | RunTarget(target); 66 | -------------------------------------------------------------------------------- /build.cmd: -------------------------------------------------------------------------------- 1 | @echo on 2 | @cd %~dp0 3 | 4 | set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 5 | set DOTNET_CLI_TELEMETRY_OPTOUT=1 6 | set DOTNET_NOLOGO=1 7 | 8 | dotnet tool restore 9 | @if %ERRORLEVEL% neq 0 goto :eof 10 | 11 | dotnet cake %* 12 | -------------------------------------------------------------------------------- /build.ps1: -------------------------------------------------------------------------------- 1 | $ErrorActionPreference = 'Stop' 2 | 3 | Set-Location -LiteralPath $PSScriptRoot 4 | 5 | $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1' 6 | $env:DOTNET_CLI_TELEMETRY_OPTOUT = '1' 7 | $env:DOTNET_NOLOGO = '1' 8 | 9 | dotnet tool restore 10 | if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } 11 | 12 | dotnet cake @args 13 | if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } 14 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euox pipefail 3 | 4 | cd "$(dirname "${BASH_SOURCE[0]}")" 5 | 6 | export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 7 | export DOTNET_CLI_TELEMETRY_OPTOUT=1 8 | export DOTNET_NOLOGO=1 9 | 10 | dotnet tool restore 11 | 12 | dotnet cake "$@" 13 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "9.0.100", 4 | "rollForward": "latestFeature" 5 | } 6 | } -------------------------------------------------------------------------------- /src/.editorconfig: -------------------------------------------------------------------------------- 1 | # C# files 2 | [*.{cs, cake}] 3 | 4 | #### Core EditorConfig Options #### 5 | 6 | # Indentation and spacing 7 | indent_size = 4 8 | indent_style = space 9 | tab_width = 4 10 | 11 | # New line preferences 12 | end_of_line = crlf 13 | insert_final_newline = true 14 | 15 | #### .NET Coding Conventions #### 16 | 17 | # Organize usings 18 | dotnet_separate_import_directive_groups = true 19 | dotnet_sort_system_directives_first = true 20 | file_header_template = unset 21 | 22 | # this. and Me. preferences 23 | dotnet_style_qualification_for_event = false:warning 24 | dotnet_style_qualification_for_field = false:warning 25 | dotnet_style_qualification_for_method = false:warning 26 | dotnet_style_qualification_for_property = false:warning 27 | 28 | # Language keywords vs BCL types preferences 29 | dotnet_style_predefined_type_for_locals_parameters_members = true:warning 30 | dotnet_style_predefined_type_for_member_access = true:warning 31 | 32 | # Parentheses preferences 33 | dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent 34 | dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent 35 | dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent 36 | dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent 37 | 38 | # Modifier preferences 39 | dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning 40 | 41 | # Expression-level preferences 42 | dotnet_style_coalesce_expression = true:suggestion 43 | dotnet_style_collection_initializer = true:suggestion 44 | dotnet_style_explicit_tuple_names = true:suggestion 45 | dotnet_style_null_propagation = true:suggestion 46 | dotnet_style_object_initializer = true:suggestion 47 | dotnet_style_operator_placement_when_wrapping = beginning_of_line 48 | dotnet_style_prefer_auto_properties = true:silent 49 | dotnet_style_prefer_compound_assignment = true:suggestion 50 | dotnet_style_prefer_conditional_expression_over_assignment = true:silent 51 | dotnet_style_prefer_conditional_expression_over_return = true:silent 52 | dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion 53 | dotnet_style_prefer_inferred_tuple_names = true:suggestion 54 | dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion 55 | dotnet_style_prefer_simplified_boolean_expressions = true:suggestion 56 | dotnet_style_prefer_simplified_interpolation = true:suggestion 57 | 58 | # Field preferences 59 | dotnet_style_readonly_field = true:suggestion 60 | 61 | # Parameter preferences 62 | dotnet_code_quality_unused_parameters = all:suggestion 63 | 64 | #### C# Coding Conventions #### 65 | 66 | # var preferences 67 | csharp_style_var_elsewhere = false:silent 68 | csharp_style_var_for_built_in_types = false:silent 69 | csharp_style_var_when_type_is_apparent = false:silent 70 | 71 | # Expression-bodied members 72 | csharp_style_expression_bodied_accessors = true:silent 73 | csharp_style_expression_bodied_constructors = false:silent 74 | csharp_style_expression_bodied_indexers = true:silent 75 | csharp_style_expression_bodied_lambdas = true:silent 76 | csharp_style_expression_bodied_local_functions = false:silent 77 | csharp_style_expression_bodied_methods = false:silent 78 | csharp_style_expression_bodied_operators = false:silent 79 | csharp_style_expression_bodied_properties = true:silent 80 | 81 | # Pattern matching preferences 82 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 83 | csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion 84 | csharp_style_prefer_switch_expression = true:suggestion 85 | 86 | # Null-checking preferences 87 | csharp_style_conditional_delegate_call = true:suggestion 88 | 89 | # Modifier preferences 90 | csharp_prefer_static_local_function = true:suggestion 91 | csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent 92 | 93 | # Code-block preferences 94 | csharp_prefer_braces = true:silent 95 | csharp_prefer_simple_using_statement = true:suggestion 96 | 97 | # Expression-level preferences 98 | csharp_prefer_simple_default_expression = true:suggestion 99 | csharp_style_deconstructed_variable_declaration = true:suggestion 100 | csharp_style_inlined_variable_declaration = true:suggestion 101 | csharp_style_pattern_local_over_anonymous_function = true:suggestion 102 | csharp_style_prefer_index_operator = true:suggestion 103 | csharp_style_prefer_range_operator = true:suggestion 104 | csharp_style_throw_expression = true:suggestion 105 | csharp_style_unused_value_assignment_preference = discard_variable:suggestion 106 | csharp_style_unused_value_expression_statement_preference = discard_variable:silent 107 | 108 | # 'using' directive preferences 109 | csharp_using_directive_placement = outside_namespace:warning 110 | 111 | #### C# Formatting Rules #### 112 | 113 | # New line preferences 114 | csharp_new_line_before_catch = true 115 | csharp_new_line_before_else = true 116 | csharp_new_line_before_finally = true 117 | csharp_new_line_before_members_in_anonymous_types = true 118 | csharp_new_line_before_members_in_object_initializers = true 119 | csharp_new_line_before_open_brace = all 120 | csharp_new_line_between_query_expression_clauses = true 121 | 122 | # Indentation preferences 123 | csharp_indent_block_contents = true 124 | csharp_indent_braces = false 125 | csharp_indent_case_contents = true 126 | csharp_indent_case_contents_when_block = false 127 | csharp_indent_labels = flush_left 128 | csharp_indent_switch_labels = true 129 | 130 | # Space preferences 131 | csharp_space_after_cast = false 132 | csharp_space_after_colon_in_inheritance_clause = true 133 | csharp_space_after_comma = true 134 | csharp_space_after_dot = false 135 | csharp_space_after_keywords_in_control_flow_statements = true 136 | csharp_space_after_semicolon_in_for_statement = true 137 | csharp_space_around_binary_operators = before_and_after 138 | csharp_space_around_declaration_statements = false 139 | csharp_space_before_colon_in_inheritance_clause = true 140 | csharp_space_before_comma = false 141 | csharp_space_before_dot = false 142 | csharp_space_before_open_square_brackets = false 143 | csharp_space_before_semicolon_in_for_statement = false 144 | csharp_space_between_empty_square_brackets = false 145 | csharp_space_between_method_call_empty_parameter_list_parentheses = false 146 | csharp_space_between_method_call_name_and_opening_parenthesis = false 147 | csharp_space_between_method_call_parameter_list_parentheses = false 148 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false 149 | csharp_space_between_method_declaration_name_and_open_parenthesis = false 150 | csharp_space_between_method_declaration_parameter_list_parentheses = false 151 | csharp_space_between_parentheses = false 152 | csharp_space_between_square_brackets = false 153 | 154 | # Wrapping preferences 155 | csharp_preserve_single_line_blocks = true 156 | csharp_preserve_single_line_statements = false 157 | 158 | #### Naming styles #### 159 | 160 | # Naming rules 161 | 162 | dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning 163 | dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface 164 | dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i 165 | 166 | dotnet_naming_rule.types_should_be_pascal_case.severity = warning 167 | dotnet_naming_rule.types_should_be_pascal_case.symbols = types 168 | dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case 169 | 170 | dotnet_naming_rule.method_should_be_pascal_case.severity = warning 171 | dotnet_naming_rule.method_should_be_pascal_case.symbols = method 172 | dotnet_naming_rule.method_should_be_pascal_case.style = pascal_case 173 | 174 | dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.severity = warning 175 | dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.symbols = public_or_protected_field 176 | dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.style = pascal_case 177 | 178 | dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.severity = warning 179 | dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.symbols = private_or_internal_static_field 180 | dotnet_naming_rule.private_or_internal_static_field_should_be_pascal_case.style = pascal_case 181 | 182 | dotnet_naming_rule.private_or_internal_field_should_be_camelcase.severity = warning 183 | dotnet_naming_rule.private_or_internal_field_should_be_camelcase.symbols = private_or_internal_field 184 | dotnet_naming_rule.private_or_internal_field_should_be_camelcase.style = camelcase 185 | 186 | dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning 187 | dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members 188 | dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case 189 | 190 | # Symbol specifications 191 | 192 | dotnet_naming_symbols.interface.applicable_kinds = interface 193 | dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 194 | dotnet_naming_symbols.interface.required_modifiers = 195 | 196 | dotnet_naming_symbols.method.applicable_kinds = method 197 | dotnet_naming_symbols.method.applicable_accessibilities = public 198 | dotnet_naming_symbols.method.required_modifiers = 199 | 200 | dotnet_naming_symbols.public_or_protected_field.applicable_kinds = field 201 | dotnet_naming_symbols.public_or_protected_field.applicable_accessibilities = public, protected 202 | dotnet_naming_symbols.public_or_protected_field.required_modifiers = 203 | 204 | dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field 205 | dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private, private_protected 206 | dotnet_naming_symbols.private_or_internal_field.required_modifiers = 207 | 208 | dotnet_naming_symbols.private_or_internal_static_field.applicable_kinds = field 209 | dotnet_naming_symbols.private_or_internal_static_field.applicable_accessibilities = internal, private, private_protected 210 | dotnet_naming_symbols.private_or_internal_static_field.required_modifiers = static 211 | 212 | dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum 213 | dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 214 | dotnet_naming_symbols.types.required_modifiers = 215 | 216 | dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method 217 | dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 218 | dotnet_naming_symbols.non_field_members.required_modifiers = 219 | 220 | # Naming styles 221 | 222 | dotnet_naming_style.pascal_case.required_prefix = 223 | dotnet_naming_style.pascal_case.required_suffix = 224 | dotnet_naming_style.pascal_case.word_separator = 225 | dotnet_naming_style.pascal_case.capitalization = pascal_case 226 | 227 | dotnet_naming_style.begins_with_i.required_prefix = I 228 | dotnet_naming_style.begins_with_i.required_suffix = 229 | dotnet_naming_style.begins_with_i.word_separator = 230 | dotnet_naming_style.begins_with_i.capitalization = pascal_case 231 | 232 | dotnet_naming_style.camelcase.required_prefix = 233 | dotnet_naming_style.camelcase.required_suffix = 234 | dotnet_naming_style.camelcase.word_separator = 235 | dotnet_naming_style.camelcase.capitalization = camel_case 236 | 237 | -------------------------------------------------------------------------------- /src/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 4 | enable 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Example.Tests/AnimalTests.cs: -------------------------------------------------------------------------------- 1 | using Example.Animals; 2 | using NUnit.Framework; 3 | 4 | namespace Example.Tests; 5 | 6 | [TestFixture] 7 | public sealed class AnimalTests 8 | { 9 | [Test] 10 | public void The_Cat_Should_Meow() 11 | { 12 | // Given 13 | var cat = new Cat(); 14 | 15 | // When 16 | var result = cat.Talk(); 17 | 18 | // Then 19 | Assert.AreEqual("Meow", result); 20 | } 21 | 22 | [Test] 23 | public void The_Dog_Should_Bark() 24 | { 25 | // Given 26 | var dog = new Dog(); 27 | 28 | // When 29 | var result = dog.Talk(); 30 | 31 | // Then 32 | Assert.AreEqual("Woof", result); 33 | } 34 | } -------------------------------------------------------------------------------- /src/Example.Tests/Example.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net8.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Example.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.31101.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example.Tests", "Example.Tests\Example.Tests.csproj", "{7B3656D1-98AD-45C8-826F-2E5A13BED71E}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example", "Example\Example.csproj", "{6E099E06-32E2-441F-B831-331ECB76FC4E}" 9 | EndProject 10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39F51784-E1AE-478D-BAE2-8A4428AEE20B}" 11 | ProjectSection(SolutionItems) = preProject 12 | ..\build.cake = ..\build.cake 13 | ..\build.ps1 = ..\build.ps1 14 | EndProjectSection 15 | EndProject 16 | Global 17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 18 | Debug|Any CPU = Debug|Any CPU 19 | Release|Any CPU = Release|Any CPU 20 | EndGlobalSection 21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 22 | {7B3656D1-98AD-45C8-826F-2E5A13BED71E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {7B3656D1-98AD-45C8-826F-2E5A13BED71E}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {7B3656D1-98AD-45C8-826F-2E5A13BED71E}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {7B3656D1-98AD-45C8-826F-2E5A13BED71E}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {6E099E06-32E2-441F-B831-331ECB76FC4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 27 | {6E099E06-32E2-441F-B831-331ECB76FC4E}.Debug|Any CPU.Build.0 = Debug|Any CPU 28 | {6E099E06-32E2-441F-B831-331ECB76FC4E}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {6E099E06-32E2-441F-B831-331ECB76FC4E}.Release|Any CPU.Build.0 = Release|Any CPU 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {131EFBB6-D070-404F-89C8-BFD611D9B7AF} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /src/Example/Animals/Cat.cs: -------------------------------------------------------------------------------- 1 | namespace Example.Animals; 2 | 3 | public sealed class Cat : IAnimal 4 | { 5 | public string Talk() 6 | { 7 | return "Meow"; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Example/Animals/Dog.cs: -------------------------------------------------------------------------------- 1 | namespace Example.Animals; 2 | 3 | public sealed class Dog : IAnimal 4 | { 5 | public string Talk() 6 | { 7 | return "Woof"; 8 | } 9 | } -------------------------------------------------------------------------------- /src/Example/Example.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net8.0 4 | 5 | -------------------------------------------------------------------------------- /src/Example/IAnimal.cs: -------------------------------------------------------------------------------- 1 | namespace Example; 2 | 3 | public interface IAnimal 4 | { 5 | string Talk(); 6 | } --------------------------------------------------------------------------------