ktsu.AppDataStorage
1.15.8
Prefix Reserved
dotnet add package ktsu.AppDataStorage --version 1.15.8
NuGet\Install-Package ktsu.AppDataStorage -Version 1.15.8
<PackageReference Include="ktsu.AppDataStorage" Version="1.15.8" />
<PackageVersion Include="ktsu.AppDataStorage" Version="1.15.8" />
<PackageReference Include="ktsu.AppDataStorage" />
paket add ktsu.AppDataStorage --version 1.15.8
#r "nuget: ktsu.AppDataStorage, 1.15.8"
#:package ktsu.AppDataStorage@1.15.8
#addin nuget:?package=ktsu.AppDataStorage&version=1.15.8
#tool nuget:?package=ktsu.AppDataStorage&version=1.15.8
ktsu.AppDataStorage
A .NET library for simple application data management with JSON serialization.
Introduction
ktsu.AppDataStorage
is a .NET library designed to simplify the process of managing application data. It facilitates saving and loading configuration or state data to the application's data folder, leveraging JSON serialization. The library handles file operations with safety mechanisms like automatic backups and provides an intuitive API for developers.
Features
- Easy-to-use API: Intuitive methods for saving and loading data.
- Automatic Backup: Backs up original files before overwriting to ensure data safety.
- Custom Serialization Options: Uses
System.Text.Json
with support for custom converters. - File System Abstraction: Uses
System.IO.Abstractions
for easy unit testing and mocking. - Debounced Saves: Prevents frequent file writes to improve performance.
- Support for Multiple Applications: Organizes data by application domain for isolation.
- Static Instance Access: Provides easy access to a singleton-like instance for centralized data management.
Installation
Package Manager Console
Install-Package ktsu.AppDataStorage
.NET CLI
dotnet add package ktsu.AppDataStorage
Package Reference
<PackageReference Include="ktsu.AppDataStorage" Version="x.y.z" />
Usage Examples
Defining Your Application Data Class
Create a class that inherits from AppData<T>
, where T
is your custom data type.
public class MyAppData : AppData<MyAppData>
{
public string Setting1 { get; set; } = "hello";
public int Setting2 { get; set; } = 12;
}
Loading Data
Load existing data or create a new instance if no data file exists using LoadOrCreate
.
var data = MyAppData.LoadOrCreate();
Console.WriteLine(data.Setting1);
Console.WriteLine(data.Setting2);
// Output:
// hello
// 12
Accessing the Static Instance
The AppData<T>
class provides a static instance through the Get
method, which ensures a single, easily accessible instance is available throughout your application:
var data = MyAppData.Get();
Console.WriteLine(data.Setting1);
The static instance is initialized automatically and matches the instance returned by LoadOrCreate
. Changes to the static instance are persistent once saved:
var data = MyAppData.Get();
data.Setting1 = "new value";
data.Save();
var sameData = MyAppData.Get();
Console.WriteLine(sameData.Setting1);
// Output:
// new value
Saving Data
Modify properties and save the data using the Save
method.
var data = MyAppData.Get();
data.Setting1 = "goodbye";
data.Setting2 = 42;
data.Save();
var reloadedData = MyAppData.Get();
Console.WriteLine(reloadedData.Setting1);
Console.WriteLine(reloadedData.Setting2);
// Output:
// goodbye
// 42
Advanced Usage
Queued and Debounced Saving
For scenarios with frequent updates, you can queue save operations using QueueSave
, which automatically debounces writes to avoid frequent file system operations.
MyAppData.QueueSave(); // Schedules a save
MyAppData.SaveIfRequired(); // Performs the save if the debounce threshold is exceeded
Writing and Reading Arbitrary Text Files
Write and read arbitrary files in the application's data folder using the static AppData
class.
Write Text
AppData.WriteText("example.txt".As<FileName>(), "Hello, AppData!");
Read Text
string content = AppData.ReadText("example.txt".As<FileName>());
Console.WriteLine(content);
// Output:
// Hello, AppData!
Customizing Serialization
Serialization behavior can be customized using JsonSerializerOptions
. By default, the library uses:
- Indented JSON for readability.
ReferenceHandler.Preserve
for circular references.- Converters such as
JsonStringEnumConverter
andToStringJsonConverter
.
Directory and File Paths
Data is stored in a directory unique to the current application domain:
var appDataPath = AppData.Path;
Console.WriteLine($"App Data Path: {appDataPath}");
API Reference
AppData
Static Class
The primary static class for working with application data storage.
Properties
Name | Type | Description |
---|---|---|
Path |
AbsoluteDirectoryPath |
The path where persistent data is stored for this application |
Methods
Name | Return Type | Description |
---|---|---|
WriteText<T>(T appData, string text) |
void |
Writes text to an app data file with backup safety |
ReadText<T>(T appData) |
string |
Reads text from an app data file |
QueueSave<T>(this T appData) |
void |
Queues a save operation for the app data |
SaveIfRequired<T>(this T appData) |
void |
Saves the app data if required based on debounce settings |
AppData<T>
Generic Abstract Class
Base class for app data storage implementations.
Properties
Name | Type | Description |
---|---|---|
FilePath |
AbsoluteFilePath |
The file path for the app data file |
Methods
Name | Return Type | Description |
---|---|---|
Get() |
T |
Gets the current instance of the app data |
LoadOrCreate() |
T |
Loads app data from file or creates a new instance |
Save() |
void |
Saves the app data to the file system |
QueueSave() |
void |
Queues a save operation for the current app data instance |
SaveIfRequired() |
void |
Saves the app data if required based on debounce settings |
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License. See the LICENSE.md file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
.NETStandard 2.1
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
net5.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
net6.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
net7.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
net8.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
-
net9.0
- ktsu.CaseConverter (>= 1.3.3)
- ktsu.RoundTripStringJsonConverter (>= 1.0.3)
- ktsu.Semantics.Paths (>= 1.0.21)
- TestableIO.System.IO.Abstractions (>= 22.0.15)
- TestableIO.System.IO.Abstractions.Wrappers (>= 22.0.15)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on ktsu.AppDataStorage:
Package | Downloads |
---|---|
ktsu.CredentialCache
CredentialCache |
|
ktsu.SingleAppInstance
A .NET library that ensures only one instance of your application is running at a time. |
|
ktsu.GitIntegration
Git Integration |
|
ktsu.BlastMerge
Cross-repository file synchronization tool that uses intelligent iterative merging to unify multiple file versions with interactive conflict resolution. Features include batch processing with custom search paths and exclusion patterns, parallel file hashing for performance, persistent command history, and comprehensive automation capabilities for multi-repository workflows. Supports advanced diff visualization, pattern-based file discovery, and discrete processing phases with real-time progress reporting. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
1.15.8 | 28 | 8/25/2025 | |
1.15.8-pre.2 | 19 | 8/25/2025 | |
1.15.7-pre.1 | 369 | 5/22/2025 | |
1.15.6 | 2,302 | 5/22/2025 | |
1.15.5 | 767 | 5/21/2025 | |
1.15.5-pre.1 | 216 | 5/20/2025 | |
1.15.4 | 463 | 5/19/2025 | |
1.15.0 | 542 | 4/29/2025 | |
1.13.0 | 273 | 4/28/2025 | |
1.12.0 | 270 | 4/28/2025 | |
1.11.0 | 294 | 4/27/2025 | |
1.10.0 | 245 | 4/27/2025 | |
1.9.0 | 255 | 4/27/2025 | |
1.8.0 | 206 | 4/26/2025 | |
1.7.3-pre.6 | 154 | 4/26/2025 | |
1.7.3-pre.5 | 151 | 4/25/2025 | |
1.7.3-pre.4 | 215 | 4/25/2025 | |
1.7.3-pre.3 | 220 | 4/21/2025 | |
1.7.3-pre.2 | 222 | 4/10/2025 | |
1.7.3-pre.1 | 224 | 4/7/2025 | |
1.7.2 | 649 | 4/4/2025 | |
1.7.2-pre.1 | 229 | 3/31/2025 | |
1.7.1 | 375 | 3/30/2025 | |
1.7.0 | 832 | 3/30/2025 | |
1.6.0 | 276 | 3/30/2025 | |
1.5.1-pre.8 | 170 | 3/29/2025 | |
1.5.1-pre.7 | 564 | 3/25/2025 | |
1.5.1-pre.6 | 211 | 3/15/2025 | |
1.5.1-pre.5 | 151 | 3/14/2025 | |
1.5.1-pre.4 | 271 | 3/3/2025 | |
1.5.1-pre.3 | 166 | 2/25/2025 | |
1.5.1-pre.2 | 180 | 2/18/2025 | |
1.5.1-pre.1 | 168 | 2/17/2025 | |
1.5.0 | 1,155 | 2/14/2025 | |
1.4.8-pre.3 | 167 | 2/6/2025 | |
1.4.8-pre.2 | 167 | 2/5/2025 | |
1.4.8-pre.1 | 153 | 2/5/2025 | |
1.4.7 | 1,092 | 1/3/2025 | |
1.4.7-pre.27 | 164 | 2/3/2025 | |
1.4.7-pre.26 | 159 | 2/3/2025 | |
1.4.7-pre.25 | 163 | 2/3/2025 | |
1.4.7-pre.24 | 167 | 2/2/2025 | |
1.4.7-pre.23 | 156 | 1/31/2025 | |
1.4.7-pre.22 | 164 | 1/30/2025 | |
1.4.7-pre.21 | 148 | 1/29/2025 | |
1.4.7-pre.20 | 160 | 1/28/2025 | |
1.4.7-pre.19 | 153 | 1/27/2025 | |
1.4.7-pre.18 | 156 | 1/26/2025 | |
1.4.7-pre.17 | 159 | 1/24/2025 | |
1.4.7-pre.16 | 163 | 1/22/2025 | |
1.4.7-pre.15 | 147 | 1/20/2025 | |
1.4.7-pre.14 | 152 | 1/18/2025 | |
1.4.7-pre.13 | 154 | 1/16/2025 | |
1.4.7-pre.12 | 139 | 1/14/2025 | |
1.4.7-pre.11 | 155 | 1/13/2025 | |
1.4.7-pre.10 | 158 | 1/11/2025 | |
1.4.7-pre.9 | 150 | 1/10/2025 | |
1.4.7-pre.8 | 161 | 1/10/2025 | |
1.4.7-pre.7 | 152 | 1/8/2025 | |
1.4.7-pre.6 | 161 | 1/7/2025 | |
1.4.7-pre.5 | 167 | 1/5/2025 | |
1.4.7-pre.4 | 188 | 1/3/2025 | |
1.4.7-pre.3 | 170 | 1/3/2025 | |
1.4.7-pre.2 | 164 | 1/3/2025 | |
1.4.7-pre.1 | 168 | 1/3/2025 | |
1.4.6 | 225 | 1/2/2025 | |
1.4.5 | 217 | 1/2/2025 | |
1.4.4 | 215 | 1/2/2025 | |
1.4.3 | 211 | 1/2/2025 | |
1.4.2 | 212 | 1/2/2025 | |
1.4.1 | 207 | 1/2/2025 | |
1.4.0 | 204 | 1/2/2025 | |
1.3.16 | 508 | 1/2/2025 | |
1.3.16-pre.6 | 167 | 1/2/2025 | |
1.3.16-pre.5 | 182 | 12/31/2024 | |
1.3.16-pre.4 | 156 | 12/30/2024 | |
1.3.16-pre.3 | 156 | 12/29/2024 | |
1.3.16-pre.2 | 165 | 12/28/2024 | |
1.3.16-pre.1 | 156 | 12/27/2024 | |
1.3.15 | 312 | 12/27/2024 | |
1.3.14 | 196 | 12/27/2024 | |
1.3.13-pre.1 | 162 | 12/27/2024 | |
1.3.12-pre.1 | 156 | 12/27/2024 | |
1.3.11-pre.1 | 158 | 12/27/2024 | |
1.3.10 | 240 | 12/26/2024 | |
1.3.10-pre.1 | 156 | 12/27/2024 | |
1.3.9 | 241 | 12/26/2024 | |
1.3.8 | 200 | 12/26/2024 | |
1.3.7 | 196 | 12/26/2024 | |
1.3.6 | 193 | 12/26/2024 | |
1.3.5 | 200 | 12/26/2024 | |
1.3.4 | 206 | 12/26/2024 | |
1.3.3 | 255 | 12/25/2024 | |
1.3.2 | 362 | 12/23/2024 | |
1.3.1 | 223 | 12/23/2024 | |
1.3.0 | 193 | 12/23/2024 | |
1.2.4 | 193 | 12/23/2024 | |
1.2.3 | 248 | 12/22/2024 | |
1.2.2 | 199 | 12/22/2024 | |
1.2.1 | 218 | 12/22/2024 | |
1.2.0 | 200 | 12/22/2024 | |
1.1.57 | 258 | 12/19/2024 | |
1.1.56 | 252 | 12/19/2024 | |
1.1.55 | 281 | 12/17/2024 | |
1.1.54 | 250 | 12/16/2024 | |
1.1.53 | 391 | 12/9/2024 | |
1.1.52 | 289 | 12/6/2024 | |
1.1.51 | 296 | 12/5/2024 | |
1.1.50 | 232 | 12/5/2024 | |
1.1.49 | 239 | 12/4/2024 | |
1.1.48 | 282 | 12/2/2024 | |
1.1.47 | 202 | 12/2/2024 | |
1.1.46 | 219 | 12/2/2024 | |
1.1.45 | 210 | 12/2/2024 | |
1.1.44 | 212 | 12/2/2024 | |
1.1.43 | 227 | 12/1/2024 | |
1.1.42 | 206 | 12/1/2024 | |
1.1.41 | 285 | 12/1/2024 | |
1.1.40 | 215 | 12/1/2024 | |
1.1.39 | 248 | 11/30/2024 | |
1.1.38 | 209 | 11/30/2024 | |
1.1.37 | 225 | 11/29/2024 | |
1.1.36 | 248 | 11/28/2024 | |
1.1.35 | 252 | 11/27/2024 | |
1.1.34 | 245 | 11/26/2024 | |
1.1.33 | 346 | 11/20/2024 | |
1.1.32 | 249 | 11/19/2024 | |
1.1.31 | 272 | 11/15/2024 | |
1.1.30 | 229 | 11/14/2024 | |
1.1.29 | 254 | 11/13/2024 | |
1.1.28 | 242 | 11/12/2024 | |
1.1.27 | 261 | 11/11/2024 | |
1.1.26 | 258 | 11/8/2024 | |
1.1.25 | 248 | 11/6/2024 | |
1.1.24 | 241 | 11/5/2024 | |
1.1.23 | 253 | 11/4/2024 | |
1.1.22 | 352 | 11/2/2024 | |
1.1.21 | 219 | 11/1/2024 | |
1.1.20 | 503 | 10/18/2024 | |
1.1.19 | 441 | 10/9/2024 | |
1.1.18 | 226 | 10/8/2024 | |
1.1.17 | 207 | 10/7/2024 | |
1.1.16 | 226 | 10/4/2024 | |
1.1.15 | 318 | 9/25/2024 | |
1.1.14 | 235 | 9/24/2024 | |
1.1.13 | 218 | 9/23/2024 | |
1.1.12 | 235 | 9/20/2024 | |
1.1.11 | 233 | 9/19/2024 | |
1.1.10 | 226 | 9/19/2024 | |
1.1.9 | 193 | 9/19/2024 | |
1.1.8 | 238 | 9/19/2024 | |
1.1.7 | 269 | 9/18/2024 | |
1.1.6 | 224 | 9/18/2024 | |
1.1.5 | 212 | 9/18/2024 | |
1.1.4 | 226 | 9/18/2024 | |
1.1.3 | 270 | 9/14/2024 | |
1.1.2 | 235 | 9/14/2024 |
## v1.15.8 (patch)
Changes since v1.15.7:
- [patch] Force patch ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump the ktsu group with 2 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.15.8-pre.2 (prerelease)
Changes since v1.15.8-pre.1:
## v1.15.8-pre.1 (prerelease)
Changes since v1.15.7:
- Bump the ktsu group with 2 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.15.7 (patch)
Changes since v1.15.6:
- Refactor AppDataTests to reduce code duplication and enhance test clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance test coverage and improve exception handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix test failures and enhance exception handling in AppDataTests ([@matt-edmondson](https://github.com/matt-edmondson))
- Add SpecStory configuration files and update project settings ([@matt-edmondson](https://github.com/matt-edmondson))
- Improve validation for mock file systems in ConfigureForTesting method ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor filesystem testing setup for thread safety and isolation ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor CI workflow and update derived cursor rules ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance GitHub Actions workflow for .NET setup ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance validation and timestamp handling in derived cursor rules ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor test methods to reduce code duplication and improve readability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor AppDataTests to eliminate code duplication and improve maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Update derived cursor rules and fix test compilation errors ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor AppDataTests to improve maintainability and readability ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance test coverage and fix serialization exception handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix test failures and improve exception handling in AppDataTests ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.7-pre.1 (prerelease)
Incremental prerelease update.
## v1.15.6 (patch)
Changes since v1.15.5:
- Update ktsu.Sdk to version 1.30.0 and add packages ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.5 (patch)
Changes since v1.15.4:
- Update project SDK versions in AppDataStorage and AppDataStorage.Test ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.5-pre.1 (prerelease)
Incremental prerelease update.
## v1.15.4 (patch)
Changes since v1.15.3:
- Fix escaping in Git command strings in Get-VersionNotes function of PSBuild.psm1 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.3 (patch)
Changes since v1.15.2:
- [patch] Update package references in project files ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.3-pre.15 (prerelease)
Changes since v1.15.3-pre.14:
- Sync .gitattributes ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
## v1.15.3-pre.14 (prerelease)
Changes since v1.15.3-pre.13:
## v1.15.3-pre.13 (prerelease)
Changes since v1.15.3-pre.12:
## v1.15.3-pre.12 (prerelease)
Changes since v1.15.3-pre.11:
## v1.15.3-pre.11 (prerelease)
Changes since v1.15.3-pre.10:
## v1.15.3-pre.10 (prerelease)
Changes since v1.15.3-pre.9:
## v1.15.3-pre.9 (prerelease)
Changes since v1.15.3-pre.8:
## v1.15.3-pre.8 (prerelease)
Changes since v1.15.3-pre.7:
## v1.15.3-pre.7 (prerelease)
Changes since v1.15.3-pre.6:
## v1.15.3-pre.6 (prerelease)
Changes since v1.15.3-pre.5:
## v1.15.3-pre.5 (prerelease)
Changes since v1.15.3-pre.4:
## v1.15.3-pre.4 (prerelease)
Changes since v1.15.3-pre.3:
## v1.15.3-pre.3 (prerelease)
Changes since v1.15.3-pre.2:
- Bump the ktsu group with 4 updates ([@dependabot[bot]](https://github.com/dependabot[bot]))
## v1.15.3-pre.2 (prerelease)
Changes since v1.15.3-pre.1:
## v1.15.3-pre.1 (prerelease)
Incremental prerelease update.
## v1.15.2 (patch)
Changes since v1.15.1:
- Add support for latest version changelog in GitHub releases ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.15.2-pre.5 (prerelease)
Changes since v1.15.2-pre.4:
## v1.15.2-pre.4 (prerelease)
Changes since v1.15.2-pre.3:
## v1.15.2-pre.3 (prerelease)
Changes since v1.15.2-pre.2:
## v1.15.2-pre.2 (prerelease)
Changes since v1.15.2-pre.1:
## v1.15.2-pre.1 (prerelease)
Incremental prerelease update.
## v1.15.1 (patch)
Changes since v1.15.0:
- Update docs and stabilize library version ([@matt-edmondson](https://github.com/matt-edmondson))
- Add new tests and update namespace in AppDataTests.cs ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PowerShell scripts for version management and metadata handling. Introduced a common module for shared functions, streamlined git configuration, and improved commit metadata processing. Updated `make-changelog.ps1` and `make-version.ps1` to utilize new functions for determining version types and managing environment variables. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor scripts and update workflow parameters ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub Actions workflow and documentation to enhance build configuration. Changed AssetPatterns to support multiple file types and updated README to reflect new parameters in Get-BuildConfiguration, improving clarity for users. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.targets ([@matt-edmondson](https://github.com/matt-edmondson))
- Update README with Static Instance Access feature ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance GitHub Actions workflow and PSBuild module with additional parameters ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove icon to fix lfs ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild module to enhance versioning logic and output structure. Updated output types to PSCustomObject for better data handling, added detailed documentation for functions, and improved error handling in metadata updates. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update .mailmap for user and bot email consistency ([@matt-edmondson](https://github.com/matt-edmondson))
- Initial commit - non working ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance PSBuild module with additional logging for git operations. Added informative output for git user configuration, status checks, file additions, commits, and pushes. Improved user feedback during metadata updates to facilitate better traceability in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor asset handling in New-GitHubRelease function of PSBuild module. Changed asset argument construction to add each asset individually, improving clarity and consistency in release command generation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update logging parameters in Invoke-DotNetPublish function to utilize structured console logger for improved output clarity during the build process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor return statements in PSBuild module functions to use PSCustomObject for improved structure and clarity in returned metadata. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor AppData locking mechanism and improve README ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor GitHub Actions workflow and PSBuild module to enhance build configuration handling and output management. Introduced Get-BuildConfiguration for improved error handling and streamlined output settings. Updated Invoke-CIPipeline to utilize build configuration data for release processing and added utility function for setting GitHub environment variables. ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StrongPaths ([@matt-edmondson](https://github.com/matt-edmondson))
- Migrate from .project.props to Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix a crash on first launch if you dont have the app data directory ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Invoke-CIPipeline function in PSBuild module to remove unnecessary metadata initialization and ensure consistent handling of ReleaseHash. Update logic to utilize metadata for release processing and improve error handling for null scenarios. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add OutputType attribute to Invoke-BuildWorkflow, Invoke-ReleaseWorkflow, and Invoke-CIPipeline functions for improved output clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhanced testing with mock file systems ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance logging in Invoke-ExpressionWithLogging function by adding information output for both command strings and script blocks. This improves visibility into the execution process and aids in debugging. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Add LICENSE template ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild module to standardize output structure using PSCustomObject, enhancing error handling and improving clarity in build and version information retrieval. ([@matt-edmondson](https://github.com/matt-edmondson))
- Readd icon ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix range check in MakeNotesForRange function to handle additional version format ([@matt-edmondson](https://github.com/matt-edmondson))
- Add changelog entry for changes since the specified tag in MakeNotesForRange function ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild module to improve Git command execution by ensuring proper quoting in various functions. This change enhances the reliability of versioning and commit operations, and improves the clarity of the commit range logic. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add additional parameters to Get-BuildConfiguration function in PSBuild module ([@matt-edmondson](https://github.com/matt-edmondson))
- Add github package support ([@matt-edmondson](https://github.com/matt-edmondson))
- Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Update-ProjectMetadata function in PSBuild module by adding version generation, license creation, and changelog generation. Implemented authors file creation and project URL shortcuts for improved project documentation and accessibility. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance version tag retrieval in PSBuild module by adding logic to find the closest lower version if an exact match is not found. Improve changelog generation to skip already processed tags and ensure only valid version tags are included. ([@matt-edmondson](https://github.com/matt-edmondson))
- Apply new editorconfig ([@matt-edmondson](https://github.com/matt-edmondson))
- Enable dependabot and sourcelink ([@matt-edmondson](https://github.com/matt-edmondson))
- Standardize console logger parameters in Invoke-DotNetBuild and Invoke-DotNetTest functions of PSBuild module to use quotes for improved clarity and consistency in CI output. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StringifyJsonConvertorFactory ([@matt-edmondson](https://github.com/matt-edmondson))
- Move IS_PRERELEASE assignment to where its actually gonna work ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Get-BuildConfiguration function in PSBuild module by adding GitHubOwner and GitHubRepo parameters. Updated documentation to improve clarity on parameter usage and streamline build configuration processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module to use PSCustomObject for output types and adjust verbosity levels in dotnet commands for improved logging clarity. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub Actions workflow to improve error handling and output settings. Ensure successful result checks before setting outputs for release processing, and adjust output variables to reference the correct data structure. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update nuget.config ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Invoke-CIPipeline function in PSBuild module to improve error handling and streamline metadata updates. Removed redundant build configuration checks and added debugging support for better traceability during the build process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Invoke-ExpressionWithLogging function in PSBuild module to allow pipeline input for ScriptBlock parameter. Improved clarity by adding a conditional check before displaying and executing the script block. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add stringify convertor and update strong strings ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump version to 1.0.0-alpha.9 ([@matt-edmondson](https://github.com/matt-edmondson))
- Update LICENSE ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild module to standardize dotnet command logging. Updated logger parameters for restore, build, test, pack, and publish functions to improve output consistency and clarity in CI/CD environments. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update JSON conversion strategy in AppData ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StringifyJsonConvertorFactory ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild module to standardize line endings across generated files. Introduced Get-GitLineEnding function to determine appropriate line endings based on git configuration. Updated file writing methods to ensure consistent encoding and line endings for VERSION.md, LICENSE.md, CHANGELOG.md, AUTHORS.md, and URL files. ([@matt-edmondson](https://github.com/matt-edmondson))
- Move shared workflow into local workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Improve error handling and logging in PSBuild module. Added try-catch blocks for repository information retrieval and enhanced error messages for build configuration, metadata updates, and build workflows. Introduced step headers for better traceability during CI/CD pipeline execution. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub Actions workflow to enhance dependency submission. Added permissions for id-token and contents, and removed the security analysis step to streamline the process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add tests ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance PSBuild module documentation by adding detailed descriptions for parameters and outputs in Get-BuildConfiguration, Invoke-DotNetPublish, Invoke-NuGetPublish, and New-GitHubRelease functions. This improves clarity and usability for developers utilizing the build configuration features. ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix an issue where the application domain was being truncated if it was inside a namespace. Add a package description. Attempt to include source and symbols in the nuget to help with debugging. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor bot commit exclusion patterns in dotnet workflow for improved clarity and case-insensitivity ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub Actions workflow to enhance project automation. Added permissions for managing repository contents and pull requests, introduced a timeout for the add-to-project job, and improved step naming for clarity. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add global.json for SDK configuration and update project files to use ktsu SDKs ([@matt-edmondson](https://github.com/matt-edmondson))
- Trim version strings in New-Version and Update-ProjectMetadata functions of PSBuild module for consistency. Ensure version is properly formatted before writing to VERSION.md and during GitHub release creation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add comprehensive tests for AppData methods ([@matt-edmondson](https://github.com/matt-edmondson))
- Add ServerUrl parameter to Get-BuildConfiguration function in PSBuild module ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove Set-GithubEnv function from PSBuild module to further streamline the CI/CD pipeline by eliminating unnecessary GitHub environment variable settings. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update build config ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance AppDataTests with new tests and improvements ([@matt-edmondson](https://github.com/matt-edmondson))
- Dont try to push packages when building pull requests ([@matt-edmondson](https://github.com/matt-edmondson))
- Disable SourceLink in project settings ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove metadata update step from the release workflow in PSBuild module to streamline the process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add VSCode configuration files for .NET Core development. Introduced launch.json for debugging and tasks.json for build, publish, and watch tasks, enhancing the development workflow. ([@matt-edmondson](https://github.com/matt-edmondson))
- dotnet-pipeline.yml renamed to dotnet-workflow.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module to enhance logging verbosity for dotnet commands. Added console logger parameters for improved output during restore, build, test, pack, and publish operations, ensuring better visibility in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Get-BuildConfiguration function in PSBuild module by adding detailed logging of build configuration parameters. This update improves visibility of repository status, build settings, paths, and artifact patterns, aiding in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StrongPaths ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor project file detection in Invoke-ReleaseWorkflow function to improve accuracy. Updated the check for .csproj files to count existing projects instead of relying on Test-Path, enhancing the robustness of the packaging process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance AppData functionality and documentation ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub Action version in add-to-project job ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor New-Changelog and Update-ProjectMetadata functions in PSBuild module ([@matt-edmondson](https://github.com/matt-edmondson))
- Assign dependabot PRs to matt ([@matt-edmondson](https://github.com/matt-edmondson))
- Read PackageDescription from DESCRIPTION file ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StrongPaths ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Update-ProjectMetadata function in PSBuild module to streamline metadata updates. Enhanced logging for git operations, including status checks and commit outputs. Improved parameter handling for optional authors and push settings, ensuring better feedback during CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance New-GitHubRelease function in PSBuild module by removing outdated documentation and adding functionality to create and push Git tags. Improved clarity in release process with explicit tag creation and error handling for git operations. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update README with improved documentation and API reference ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor bot commit exclusion patterns in dotnet workflow for case-insensitivity ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix typo in variable name in make-changelog.ps1 ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor visibility and enhance type conversion ([@matt-edmondson](https://github.com/matt-edmondson))
- Standardize console logger parameters in PSBuild module for dotnet commands. Updated restore, pack, and publish functions to use the /p:ConsoleLoggerParameters syntax for improved clarity and consistency in output across CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refine console logger parameters in Invoke-DotNetRestore function of PSBuild module. Updated parameters to enhance output clarity by removing unnecessary options and standardizing verbosity settings for improved consistency in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add GitHub Actions workflow to automate issue and PR management for ktsu.dev project ([@matt-edmondson](https://github.com/matt-edmondson))
- Replace LICENSE file with LICENSE.md ([@matt-edmondson](https://github.com/matt-edmondson))
- Replace Write-Output with Write-Host in PSBuild module for improved console logging consistency. This change enhances the clarity of output messages during build and versioning processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update README.md to enhance documentation on automatic version calculation and public API detection. Added detailed criteria for version increments based on commit history, including explicit version tags and public API changes, to clarify semantic versioning practices. ([@matt-edmondson](https://github.com/matt-edmondson))
- Renamed metadata files ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance PSBuild module with improved logging and error handling. Added detailed output for git commands and refined version type analysis. Introduced step headers for better traceability during CI/CD execution. Updated metadata handling to ensure robust error management and commit processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Sort git tags when retrieving the last released version in dotnet workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Add Set-GitIdentity function to PSBuild module for configuring git user identity in automated operations. Update related functions to utilize this new feature and enhance README.md documentation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add Version and ReleaseHash properties directly to BuildConfiguration in Invoke-CIPipeline function ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module to include new utility functions: Get-GitLineEnding, Set-GitIdentity, Write-InformationStream, and Invoke-ExpressionWithLogging. Removed version number from the header for cleaner documentation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Read from AUTHORS file during build ([@matt-edmondson](https://github.com/matt-edmondson))
- Add new tests for StrongName and Storage classes ([@matt-edmondson](https://github.com/matt-edmondson))
- Update dotnet.yml workflow to ensure WorkspacePath is correctly set and enhance Write-InformationStream function to support pipeline input for Object parameter. This improves the flexibility of the logging function and maintains consistency in the CI/CD process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add Command parameter to Invoke-ExpressionWithLogging function in PSBuild module to allow execution of string commands as script blocks. Enhanced parameter handling and documentation for clarity. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update AUTHORS.md handling in PSBuild module to preserve existing file and improve metadata generation logic. The script now ensures that the AUTHORS.md file is only generated if it does not already exist, while also enhancing documentation for metadata updates. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor console logger parameters in Invoke-DotNetBuild, Invoke-DotNetTest, and Invoke-DotNetPack functions of PSBuild module to use a standardized format. This change enhances clarity and consistency in CI output by utilizing the Microsoft.Build.Logging.ConsoleLogger for improved logging detail. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Get-GitTags and Get-VersionType functions in PSBuild module to improve git tag retrieval and version increment logic. Enhanced handling of versioning suffixes and commit message parsing for version determination. Updated changelog generation to include more robust commit filtering and improved output formatting. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor exclusion patterns in dotnet workflow to simplify bot commit filtering ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix syntax error in make-license.ps1 command in dotnet.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Add compatibility suppressions and update build properties ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix quoting in Invoke-NuGetPublish function to ensure proper command execution for package publishing to GitHub Packages and NuGet.org. This change enhances reliability and prevents potential issues with command interpretation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove GitHub environment variable setting from Update-ProjectMetadata function in PSBuild module to streamline metadata update process. ([@matt-edmondson](https://github.com/matt-edmondson))
- Improved handling of .csx file detection and enhanced tag retrieval logic to ensure proper array handling. Updated changelog generation to accommodate various tag scenarios, ensuring robust versioning checks. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update .editorconfig to include additional file types and formatting rules ([@matt-edmondson](https://github.com/matt-edmondson))
- Update GitHub release function in PSBuild module to use GitSha instead of metadata.ReleaseHash for improved accuracy in release tracking. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update console logger parameters in Invoke-DotNetRestore function of PSBuild module to use a standardized format. This change improves logging detail and consistency in CI output by utilizing the Microsoft.Build.Logging.ConsoleLogger. ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump to version 1.0.0-alpha.10 ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Invoke-DotNetPack and Invoke-ReleaseWorkflow functions to support project-specific packaging and improved error handling. Added parameters for verbosity and project selection, along with checks for project existence before packaging. Updated release workflow to conditionally skip packaging and improved logging for package creation and publishing steps. ([@matt-edmondson](https://github.com/matt-edmondson))
- Bump version to 1.0.0-alpha.2 and add a package description ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor argument construction in New-GitHubRelease function of PSBuild module. Improved clarity by separating target commit and notes generation into distinct steps, and streamlined asset handling by adding assets as positional arguments. ([@matt-edmondson](https://github.com/matt-edmondson))
- Avoid double upload of symbols package ([@matt-edmondson](https://github.com/matt-edmondson))
- Update NuGet API key reference in GitHub Actions workflow to align with new secret naming convention ([@matt-edmondson](https://github.com/matt-edmondson))
- Migrate ktsu.io to ktsu namespace ([@matt-edmondson](https://github.com/matt-edmondson))
- Standardize console logger parameters in PSBuild module for dotnet commands. Updated restore, test, pack, and publish functions to include ForceNoAlign and ShowTimestamp options, enhancing output clarity and consistency in CI/CD environments. ([@matt-edmondson](https://github.com/matt-edmondson))
- Migrate ktsu.io to ktsu namespace ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove unnecessary --no-logo option from dotnet restore command in PSBuild module for cleaner output. This change maintains consistency with previous updates to console logger parameters. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor New-Changelog function to restore line ending handling. Moved line ending retrieval back into the function to ensure consistent formatting in changelog generation. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add logging for note generation in MakeNotesForRange function ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance changelog and versioning logic in PowerShell scripts. Added checks for non-merge commits, code changes, and commit message tags to determine version type (major, minor, patch, prerelease) for changelog generation. Updated `make-version.ps1` to streamline version increment logic based on commit presence and tags. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor PSBuild functions to execute .NET commands with output directed to the console for better logging in GitHub Actions. Updated Invoke-DotNetRestore, Invoke-DotNetBuild, Invoke-DotNetTest, Invoke-DotNetPack, Invoke-DotNetPublish, and Invoke-NuGetPublish functions to use the call operator for command execution, enhancing visibility of command outputs and error handling. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.props ([@matt-edmondson](https://github.com/matt-edmondson))
- Make test classes and records public; update NoWarn property ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module with enhanced documentation, improved error handling, and refined function exports. Added detailed usage instructions and author information, updated command execution for better error reporting, and improved parameter descriptions for clarity. This refactor aims to streamline the CI/CD pipeline process for .NET applications. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module metadata and function exports to enhance versioning and automation capabilities. Changed GUID, updated copyright information, and expanded function exports to include new version management, utility, and workflow functions. Enhanced module description and release notes to reflect new features and improvements. ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove URL escaping from workflow and adjust environment variable output ([@matt-edmondson](https://github.com/matt-edmondson))
- Update console logger parameters in Invoke-DotNetRestore function of PSBuild module to use 'Summary' instead of 'ShowTimestamp'. This change enhances output clarity and maintains consistency with previous updates to logging settings in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix a bug where the serializer would never serialize anything, because it was missing the derived typeinfo ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove Directory.Build.props and Directory.Build.targets files to streamline project configuration and eliminate unused properties. ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Update-ProjectMetadata function to include current commit hash logging and update ReleaseHash handling based on changes. Introduced HasChanges flag to indicate if metadata was updated. ([@matt-edmondson](https://github.com/matt-edmondson))
- Take latest StringifyJsonConvertorFactory ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Dependabot workflow by adding a timeout and improving logging for PR processing. Updated the step names for clarity and ensured proper handling of PR URLs during auto-merge operations. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update .NET workflow to trigger on main and develop branches ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor AppData to use Lazy<T> for internal state ([@matt-edmondson](https://github.com/matt-edmondson))
- Update PSBuild module documentation and usage examples in README.md. Refine module description and enhance installation instructions. Remove outdated usage examples and clarify version control features. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add reading and writing to arbitrary files within the app directory ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor tests and add null checks for deserialized data ([@matt-edmondson](https://github.com/matt-edmondson))
- Refine console logger parameters in Invoke-DotNetRestore function of PSBuild module by removing 'Summary' from verbosity settings. This change improves output clarity and maintains consistency with previous logging updates in CI/CD processes. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add VERSION_TYPE variable to MakeNotesForRange function ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Assert-LastExitCode calls in Invoke-DotNetRestore, Invoke-DotNetBuild, and Invoke-DotNetTest functions of PSBuild module to remove unnecessary command parameter. This change simplifies the error handling logic while maintaining clarity in logging. ([@matt-edmondson](https://github.com/matt-edmondson))
- Add utility functions to PSBuild module and update README.md for enhanced documentation ([@matt-edmondson](https://github.com/matt-edmondson))
- Update ToStringJsonConverter to 1.0.0 ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance Invoke-CIPipeline function in PSBuild module by initializing metadata variable and improving error handling for metadata updates. Ensure proper handling of null metadata scenarios to provide clearer error messages during CI/CD proce... (truncated due to NuGet length limits)