KludgeBox 4.0.0

dotnet add package KludgeBox --version 4.0.0
                    
NuGet\Install-Package KludgeBox -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KludgeBox" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KludgeBox" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="KludgeBox" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KludgeBox --version 4.0.0
                    
#r "nuget: KludgeBox, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package KludgeBox@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KludgeBox&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=KludgeBox&version=4.0.0
                    
Install as a Cake Tool

KludgeBox

Class library for gamedev in Godot/C#

Разработка

При разработке используется несколько подходов к доставке пакета в тестовое окружение:

  • Локальный фид - для совсем уж трешовых изменений, экспериментов и тестов, которые скорее всего не пойдут в публичную версию
  • nuget.org - для всего остального, просто не забудь выставить PrereleaseFlag в KludgeBox.csproj

Локальный NuGet Feed

Как создать

Локальный фид - это просто папка. Создай папку в удобном месте и пропиши в терминал.

dotnet nuget add source "C:\Path\To\LocalNuGetFeed" --name LocalFeed

Можно в качестве KludgeBoxLocalFeed указать папку внутри этого проекта, куда происходит билд .nupkg файлов

Как публиковать пакеты в локальный фид

В Rider → Правой кнопкой по проекту → Advanced Build Actions → Pack Selected Project → В консоли Build Output будет путь к файлу .nupkg Successfully created package → Этот файл ручками переноси в папку локального фида

Можно билдить сразу в нужную папку: dotnet pack --output "C:\Path\To\LocalNuGetFeed" -p:IncludeSymbols=false -p:IncludeSource=false
Или находясь в другом проекте: dotnet pack "C:\Path\To\KludgeBox\KludgeBox\KludgeBox.csproj" --output "C:\Path\To\LocalNuGetFeed" -p:IncludeSymbols=false -p:IncludeSource=false
Опционально можно добавить в конец предыдущей команды для обновления кеша зависимого от KludgeBox проекта:
; Remove-Item -Path "$env:USERPROFILE\.nuget\packages\kludgebox" -Recurse -Force; dotnet restore --no-cache
Можно вызывать эту команду автоматически в зависимом KludgeBox проекте:

  • Надо создать отдельную конфигурацию типа Shell Script, выбрать формат Script Text и скопировать туда команду
  • Склонировать конфигурацию запуска проекта, в Before Launch над Build Solution добавить Run another configuration и указать наш скрипт
Как найти локальные пакеты

В Rider

  • NuGet Tool (по идее оно где-то внизу слева)
  • Рядом со строкой поиска и Solution выбрать All feeds
  • Начать искать пакет в поисковой строке по названию
  • В правой части рядом с выбором версии в выпадающем списке вместо nuget.org выбираем LocalFeed (или что ты там указал после --name)
  • Установи этот пакетище, бахнув на плюсик

Публикация в nuget.org

В Rider

  • Правой кнопкой по проекту
  • Advanced Build Actions
  • Pack Selected Project
  • В консоли Build Output будет путь к файлу .nupkg Successfully created package, скопируй его
  • Возьми KludgeBox publishing API key из хранилища паролей
  • dotnet nuget push <Successfully created package.nupkg> --api-key <KludgeBox publishing API key> --source https://api.nuget.org/v3/index.json
  • Ошибку связанную с загрузкой .snupkg можно игнорировать, главное, чтобы в консоли было Your package was pushed.

Тебе нужен именно файл .nupkg.

.snupkg - файл с отладочными символами, но они по умолчанию зашиваются в основной файл

Дополнительные проверки после публикации в nuget.org

Это не обязательно, но желательно.
Зайди в NuGet Package Explorer, дождись, пока последняя версия проиндексируется и проверь, чтобы все строки в разделе Health были с зеленым значком. Если есть желтые или красные значки - можешь попытаться опубликовать файл .snupkg

Тестирование

Здесь описаны только базовые инструкции, чтобы создать и запустить тесты. За деталями иди в файлы исходного кода, там комментарии есть, они всё пояснят.

1. Как создать тесты

  • Создать класс теста и унаследовать его от TestNode
  • Создать public void метод и повесить на него атрибут [Test]
  • Посмотреть в исходнике TestNode.cs че еще там можно сделать

2. Как запустить тесты

  • Добавить в дерево сцену Src/KludgeBox/Testing/TestingScene/Tester.tscn
  • Желательно убрать всё остальное
  • Тестер сам просканирует сборку проекта и запустит все тесты

3. Полезные штуки, в которых есть комментарии

Эти файлы используются для непосредственного написания тестов. В них есть более подробные комментарии о том как их использовать.

  • Src/KludgeBox/Testing/Asserting/Assert.cs
  • Src/KludgeBox/Testing/TestNode.cs
  • Src/KludgeBox/Testing/TestAttributes.cs
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0 137 8/8/2026
3.3.3 141 3/29/2026
3.3.2 117 3/24/2026
3.3.1 112 3/23/2026
3.3.0 108 3/23/2026
3.2.2 110 3/22/2026
3.2.1 104 3/22/2026
3.2.0 109 3/21/2026
3.1.3 111 3/21/2026
3.1.2 127 2/21/2026
3.1.1 126 2/3/2026
3.1.0 126 1/24/2026
3.0.2 201 12/21/2025
3.0.1 181 12/21/2025
3.0.0 189 12/21/2025
2.3.0 189 12/21/2025
2.2.1 235 12/7/2025
2.2.0 204 12/5/2025
2.1.2 179 11/15/2025
2.1.1 180 11/15/2025
Loading failed