Skip to main content
You can build WinFsp-MemFs-Extended from source to compile the latest version or make custom modifications to the project.

Prerequisites

Before building the project, ensure you have the following installed:

Visual Studio 2022 or later

The project uses Visual Studio 2022 (v143 platform toolset) with C++20 language standard. You need:
  • Visual Studio 2022 or later
  • Desktop development with C++ workload
  • Windows 10 SDK
  • .NET 6.0 SDK (for ConcurrencyStressTester)

WinFsp SDK

WinFsp must be installed on your system. The build configuration expects WinFsp to be installed at:
C:\Program Files (x86)\WinFsp
This location contains:
  • inc/ - WinFsp header files
  • lib/ - WinFsp library files (winfsp-x86.lib, winfsp-x64.lib)
Download WinFsp from the official WinFsp website.

Build configuration

The solution file WinFsp-MemFs-Extended.sln contains four projects:
  1. WinFsp-MemFs-Extended - Main RAM disk application (C++)
  2. RandomFilesTester - File creation testing utility (C++)
  3. ConcurrencyStressTester - Multithreaded stress testing tool (C#)
  4. Winfsp-Fsbench - File system benchmarking utility (C++)

Supported platforms

You can build for both x86 and x64 architectures:
  • Win32 (x86) - 32-bit builds
  • x64 - 64-bit builds

Build configurations

  • Debug - Development builds with debug information
  • Release - Optimized builds for production use

Building the project

Using Visual Studio

  1. Open WinFsp-MemFs-Extended.sln in Visual Studio
  2. Select your desired configuration (Debug or Release)
  3. Select your target platform (x64 or Win32)
  4. Build the solution:
    • Press Ctrl+Shift+B, or
    • Select Build > Build Solution from the menu

Using MSBuild command line

You can also build from the command line using MSBuild:
# Build Release x64
msbuild WinFsp-MemFs-Extended.sln /p:Configuration=Release /p:Platform=x64

# Build Debug x64
msbuild WinFsp-MemFs-Extended.sln /p:Configuration=Debug /p:Platform=x64

# Build Release x86
msbuild WinFsp-MemFs-Extended.sln /p:Configuration=Release /p:Platform=Win32

Output files

After a successful build, you’ll find the executables in the following locations:

Main application

  • Debug builds: x64/Debug/WinFsp-MemFs-Extended.exe or Debug/WinFsp-MemFs-Extended.exe
  • Release x64: x64/Release/memefs-x64.exe
  • Release x86: Release/memefs-x86.exe
The release builds use custom target names (memefs-x64 and memefs-x86) for easier identification.

Test utilities

  • RandomFilesTester: x64/[Configuration]/RandomFilesTester.exe
  • ConcurrencyStressTester: ConcurrencyStressTester/bin/[Configuration]/net6.0/ConcurrencyStressTester.exe
  • Winfsp-Fsbench: x64/[Configuration]/Winfsp-Fsbench.exe

Troubleshooting

WinFsp headers not found

If you get errors about missing WinFsp headers:
  1. Verify WinFsp is installed at C:\Program Files (x86)\WinFsp
  2. Check that the WinFsp SDK was installed (not just the runtime)
  3. Update the include paths in the project properties if WinFsp is in a different location

Platform toolset errors

If you see errors about platform toolset v143:
  1. Install Visual Studio 2022 or update your existing installation
  2. Or modify the .vcxproj files to use your installed toolset (e.g., v142 for VS 2019)

.NET SDK errors

If ConcurrencyStressTester fails to build:
  1. Install .NET 6.0 SDK or later
  2. Or exclude the ConcurrencyStressTester project from the build

Build docs developers (and LLMs) love