131 lines
3.3 KiB
Markdown
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 |