Codevoid.Utilities.Reswinator 1.0.0

dotnet add package Codevoid.Utilities.Reswinator --version 1.0.0                
NuGet\Install-Package Codevoid.Utilities.Reswinator -Version 1.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="Codevoid.Utilities.Reswinator" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Codevoid.Utilities.Reswinator --version 1.0.0                
#r "nuget: Codevoid.Utilities.Reswinator, 1.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.
// Install Codevoid.Utilities.Reswinator as a Cake Addin
#addin nuget:?package=Codevoid.Utilities.Reswinator&version=1.0.0

// Install Codevoid.Utilities.Reswinator as a Cake Tool
#tool nuget:?package=Codevoid.Utilities.Reswinator&version=1.0.0                

Reswinator

When using resw files for resources in applications targetting the Windows App SDK, there is no simple way to get strongly-typed access to the string resources contained in those resw files. This means you are left to access them similar to this:

void DoSomething()
{
    ResourceLoader loader = new ResourceLoader();
    myThing.Content = load.GetString("ThingContent");
}

And hope you've typed it correctly.

In resx files – the predecessor of resw – Visual Studio would generate a Resources.Designer.cs whenever you edited the file which provided strongly typed access to resources. This wasn't continued for resw. Additionally that file was committed to the repo, and not generated with every build.

Reswinator does exactly that -- generates a strongly typed accessor at build time.

Installation

Add the Rewsinator nuget package to your project.

Thats it!

Usage

Add a resw to your project following the Microsoft guidelines and build.

Thats it!

Q&A

What namespace does it generate the resource class into?

Whatever your projects RootNamespace property is. If you haven't specified this the namespace will be GeneratedResources.

How does it know which resw to generate for when there are multiple langauges?

It uses the projects default langauge (as specified in the project), and looks for only resw files that match that language

What if I have multiple resw files?

They're generated into different classes that match the file name. E.g. Errors.resw becomes <namspace>.Errors. The default Resources.resw will always be Resources.

Files that have . them will have those removed to generate the class name for those resources. If there is an existing resource wrapper class with that name, a number will be suffixed to that class name

Do you support this other runtime that uses resw?

We only support Windows App SDK targets at this time. If you wish support for others, then file an issue. Pull requests are also welcome!

Product 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. 
.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.

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
1.0.0 221 10/31/2022