Building

The DLL builds in WSL (or on Linux) with xsdk's toolchain. Clone it, then set up the rest, in PowerShell:

git clone https://github.com/Digiex/Silverlight360.UnRAR.git
cd Silverlight360.UnRAR
.\tools\Configure.ps1

Configure.ps1 gets what the build needs, each the way that suits it:

UnRAR's source UnRAR 7.3.2, which RARLAB publishes only as a tarball unrarsrc-7.3.2.tar.gz downloaded from rarlab.com into third_party\, checked against its SHA-256, and unpacked into third_party\unrar; git ignores both. Another version is a change of $unrarVersion and $unrarSha256 in the script
xsdk jessenic/xsdk, branch dll-modules, the build XboxNGen uses: its elf2xex.py has --dll, and its build/libxsdk.a is what the DLL links Found from -Xsdk, XSDK, XboxNGen's configuration beside this repository, or a checkout two folders up (C:\Proj\xsdk) or beside it; otherwise cloned two folders up, if you say so. libxsdk.a is built if it isn't
xsdk's toolchain GCC 15.3, binutils and newlib for powerpc-xsdk-elf, in WSL Found in ~/xsdk-gcc or at -Toolchain; otherwise built there with xsdk's tools/toolchain/build.sh, if you say so: about 10 minutes, and a 136 MB download of their sources
Silverlight360 The SDK, for Silverlight360.UnRAR.dll and the sample Found from -Silverlight360, its environment variable, or a checkout beside this repository; otherwise cloned there, if you say so

It also checks WSL has make, cmake, ninja, python3 and git (sudo apt install build-essential cmake ninja-build python3 git in Debian). -NonInteractive asks nothing: -CloneXsdk, -BuildToolchain and -CloneSilverlight360 say what it may fetch or build. It writes config.mk (XSDK and TOOLCHAIN as WSL sees them, for the Makefile), config.props (for the C# projects) and config.json (for tools\Release.ps1); git ignores them, and -Show prints them.

Then, in WSL, in the repository's folder:

make -j$(nproc)

That writes unrar360.xex (750 KB). UnRAR's source is built as it comes, with src/compat.h included ahead of it for what xsdk lacks, so it isn't modified. make clean starts over; the Makefile's XSDK, TOOLCHAIN and ELF2XEX can be given on its command line to build with something else.

Silverlight360.UnRAR.dll

The C# side builds as a Silverlight360 class library, in PowerShell, with Silverlight360 where .\tools\Configure.ps1 -Show says (here beside this repository, as XboxSilverlightSdk):

..\XboxSilverlightSdk\tools\Build-XboxApp.ps1 -Project .\csharp\Silverlight360.UnRAR.csproj

That writes csharp\bin\Release\Silverlight360.UnRAR.dll and Silverlight360.UnRAR.xml, its documentation for IntelliSense, with Silverlight360.Common.dll, which it references, beside them.

The sample

sample/ is a Silverlight360 app that extracts each test archive and checks the result:

..\XboxSilverlightSdk\tools\Build-XboxApp.ps1 -Project .\sample\UnRarSample.csproj

See Testing for running it.