This guide helps you set up a Windows VM using QEMU to test the Windows build of MS Project Merge.
QEMU is already installed via Homebrew.
Download the Windows 11 ISO from Microsoft: https://www.microsoft.com/software-download/windows11
Save it to a location outside the git repository (e.g., ~/Downloads/).
# Create a directory for VM files (gitignored)
mkdir -p vm
# Create a 50GB virtual disk
qemu-img create -f qcow2 vm/windows11.qcow2 50G
# Start the VM with the Windows ISO
qemu-system-x86_64 \
-m 4G \
-smp 2 \
-cpu host \
-accel hvf \
-drive file=vm/windows11.qcow2,if=virtio \
-cdrom ~/Downloads/Win11_English_x64.iso \
-boot d \
-device virtio-net,netdev=net0 \
-netdev user,id=net0 \
-display default
Follow the Windows installation wizard. This will take 15-30 minutes.
# Start the installed Windows VM
qemu-system-x86_64 \
-m 4G \
-smp 2 \
-cpu host \
-accel hvf \
-drive file=vm/windows11.qcow2,if=virtio \
-device virtio-net,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::5555-:3389 \
-display default
Option A: Shared Folder (Recommended)
# Start VM with shared folder
qemu-system-x86_64 \
-m 4G \
-smp 2 \
-cpu host \
-accel hvf \
-drive file=vm/windows11.qcow2,if=virtio \
-device virtio-net,netdev=net0 \
-netdev user,id=net0,smb=$(pwd)/target/x86_64-pc-windows-gnu/release \
-display default
In Windows, access the shared folder via: \\10.0.2.4\qemu
Option B: HTTP Server
# In a separate terminal, start a simple HTTP server
cd target/x86_64-pc-windows-gnu/release
python3 -m http.server 8000
In the Windows VM browser, go to: http://10.0.2.2:8000/
MsProjectMerge-v1.0.0.exe to the Windows VMqemu-img snapshot -c clean_install vm/windows11.qcow2
qemu-img snapshot -l vm/windows11.qcow2
qemu-img snapshot -a clean_install vm/windows11.qcow2
qemu-img info vm/windows11.qcow2
-accel hvf (macOS Hypervisor Framework)-m 8G (if you have enough RAM)-smp 4 (if you have a multi-core CPU)-accel kvm-m 8G-smp 4-accel hvf-display cocoa or -display sdlIf you prefer a GUI, install UTM (free, open-source):
brew install --cask utm
UTM provides a user-friendly interface for QEMU on macOS.
vm/ directory (gitignored)