SadPencil.Ra2CsfFile
2.2.5
dotnet add package SadPencil.Ra2CsfFile --version 2.2.5
NuGet\Install-Package SadPencil.Ra2CsfFile -Version 2.2.5
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="SadPencil.Ra2CsfFile" Version="2.2.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SadPencil.Ra2CsfFile" Version="2.2.5" />
<PackageReference Include="SadPencil.Ra2CsfFile" />
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 SadPencil.Ra2CsfFile --version 2.2.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SadPencil.Ra2CsfFile, 2.2.5"
#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 SadPencil.Ra2CsfFile@2.2.5
#: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=SadPencil.Ra2CsfFile&version=2.2.5
#tool nuget:?package=SadPencil.Ra2CsfFile&version=2.2.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SadPencil.Ra2CsfFile
.NET Library
This is a .NET Standard 2.0 Library to load, edit, and save string table files (.csf) for Red Alert 2. Also, (de)serialize the string table from/to .ini files.
Example use
See ExampleApp/Program.cs file.
License
MIT
Notes
Reference: https://modenc.renegadeprojects.com/CSF_File_Format
Version History
v2.2.5: update existing label with correct key case
v2.2.4: add trimmable line warning comment when generating an ini file
v2.2.3: ignore case when sorting keys; use natural sort order to make sure "key10" is placed after "key9"
v2.2.2: add OrderByKey option
v2.2.1: fix a bug where labels were not case-insensitive after cloning; support case-insensitive labels in INI
v2.2.0: allow CSF labels with capitcal letters included
v2.1.3: handle invalid CSF values with extra zeros
v2.1.2: disable Encoding1252WriteWorkaround by default; add CLSCompliant attribute to namespace SadPencil.Ra2CsfFile
v2.1.1: fix that some label names are not loaded successfully from .ini files
v2.1.0: api breaking change: change the behavior of Csf.AddLabel() with Add&Replace, so that the original ra2.csf file can be loaded
v2.0.2: remove the space around the "=" sign of ini file to fix a bug processing values contains " = " pattern
v2.0.1: fix a bug that CSF file with non-lowercase label name can not be loaded
v2.0.0: migrate to .NET Standard 2.0; replace dependency MadMilkman.Ini with ini-parser-netstandard; add Csf.RemoveLabel() method.
v1.3.1: api breaking change: Labels.Add will be replaced with AddLabel; add encoding 1252 workaround options for the original RA2 fonts; add clone constructor for CsfFile.
v1.2.2: space in labels is now tolerated so that the library will not complain about the string table file in RA2.
v1.2.1: fix a bug where some labels of the ini file is not loaded.
v1.2.0: api breaking change: CsfFile.Labels will now store only one value for a label, as the rest values (if any) are not used by the game; api change: deprecate CsfFile.GetCsfLang() with CsfLangHelper.GetCsfLang(); api change: deprecate CsfFile.LoadFromIniFile() with CsfFileIniHelper.LoadFromIniFile(); api change: deprecate CsfFile.WriteIniFile() with CsfFileIniHelper.WriteIniFile().
v1.1.1: add XML documentation; re-release the library with Release configuration.
v1.1.0: fix a bug where multi-line text will be trimmed mistakenly; invalid chars in label name will now be checked.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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 was computed. 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 was computed. 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 was computed. |
| .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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- ini-parser-netstandard (>= 2.5.2)
- NaturalStringExtensions (>= 3.0.0)
- System.Text.Encoding.CodePages (>= 6.0.0)
- System.Text.Encoding.Extensions (>= 4.3.0)
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 |
|---|---|---|
| 2.2.5 | 236 | 12/14/2025 |
| 2.2.4 | 196 | 10/22/2025 |
| 2.2.3 | 149 | 9/6/2025 |
| 2.2.2 | 184 | 9/5/2025 |
| 2.2.1 | 186 | 8/17/2025 |
| 2.1.3 | 272 | 8/6/2025 |
| 2.1.2 | 518 | 12/25/2021 |
| 2.1.1 | 671 | 12/4/2021 |
| 2.1.0 | 448 | 12/4/2021 |
| 2.0.2 | 468 | 12/4/2021 |
| 2.0.1 | 463 | 12/4/2021 |
| 1.3.1 | 485 | 12/4/2021 |
| 1.2.2 | 432 | 12/4/2021 |
| 1.2.1 | 427 | 12/4/2021 |
| 1.1.1 | 458 | 11/27/2021 |
update existing label with correct key case