Files
nfoguard/NFOGuard.Emby.Plugin/WSL_SETUP.md
T
2025-09-12 09:04:23 -04:00

131 lines
3.3 KiB
Markdown

# NFOGuard Emby Plugin - WSL Development Setup
This guide helps you build the NFOGuard Emby plugin on Windows using WSL (Windows Subsystem for Linux).
## Prerequisites
### 1. Install .NET SDK in WSL
```bash
# Update package list
sudo apt update
# Install .NET SDK 6.0 (supports .NET Framework 4.8 development)
sudo apt install -y dotnet-sdk-6.0
# Verify installation
dotnet --version
```
### 2. Get Emby SDK Files
You need to obtain the Emby SDK DLLs from an Emby Server installation:
**Option A: From existing Emby Server**
1. Locate your Emby Server installation directory:
- Windows: `C:\Program Files\Emby-Server\System`
- Or wherever you installed Emby Server
2. Copy these files to `NFOguard/EmbySDK/`:
- `MediaBrowser.Common.dll`
- `MediaBrowser.Controller.dll`
- `MediaBrowser.Model.dll`
**Option B: Download from official sources**
- Check the [Emby Plugin Development docs](https://dev.emby.media/doc/plugins/dev/index.html)
### 3. Prepare EmbySDK Directory
```bash
# From the NFOguard directory
mkdir -p EmbySDK
# Copy the DLL files here (use Windows Explorer or copy commands)
# You should have:
# EmbySDK/MediaBrowser.Common.dll
# EmbySDK/MediaBrowser.Controller.dll
# EmbySDK/MediaBrowser.Model.dll
```
## Building the Plugin
### Option 1: Using Build Script (Recommended)
```bash
cd NFOGuard.Emby.Plugin
./build.sh
```
### Option 2: Manual Build
```bash
cd NFOGuard.Emby.Plugin
# Clean previous builds
rm -rf bin obj
# Build the project
dotnet build NFOGuard.Emby.Plugin.csproj -c Release -f net48
```
## Troubleshooting
### Common Issues
**1. "MediaBrowser.* not found" errors:**
- Ensure SDK DLLs are in `../EmbySDK/` relative to the .csproj file
- Check DLL file names match exactly (case-sensitive on Linux)
**2. ".NET Framework 4.8 targeting pack" errors:**
```bash
# Install Mono for .NET Framework support
sudo apt install mono-complete
```
**3. Permission errors:**
```bash
# Make build script executable
chmod +x build.sh
```
**4. WSL file system issues:**
- Make sure you're working in the Linux filesystem (`/home/...`) not Windows mounts (`/mnt/c/...`) for better performance
- If files are on Windows side, they may have permission/line ending issues
### Verifying Build Success
After successful build:
```bash
# Check if DLL was created
ls -la bin/Release/net48/NFOGuard.Emby.Plugin.dll
# Check file size (should be > 0 bytes)
file bin/Release/net48/NFOGuard.Emby.Plugin.dll
```
## Deployment to Windows Emby Server
1. **Locate Emby plugins directory:**
- `C:\ProgramData\Emby-Server\plugins`
2. **Copy from WSL to Windows:**
```bash
# From WSL, copy to Windows (adjust path as needed)
cp bin/Release/net48/NFOGuard.Emby.Plugin.dll /mnt/c/ProgramData/Emby-Server/plugins/
```
3. **Restart Emby Server**
4. **Verify in Emby Dashboard:**
- Go to Dashboard → Plugins
- Look for "NFOGuard" in installed plugins
## Development Tips
- Use VS Code in WSL for editing: `code .`
- Keep source files in WSL filesystem for best performance
- Only copy final DLL to Windows Emby server
- Use `tail -f /var/log/emby.log` (or wherever Emby logs are) to monitor plugin activity
## Next Steps
Once built and deployed:
1. Test with a new TV episode import
2. Check Emby logs for NFOGuard messages
3. Verify DateCreated syncs to PremiereDate in database
4. Configure licensing when ready for production use