Centralize build output and generate OS-specific startup.json
- All DLLs now output to lib\[Configuration]\[TargetFramework]\ at repo root (see Directory.Build.props) - .gitignore updated to exclude /lib/ - On first run, startup.json is auto-generated with OS-appropriate default paths (Windows, Linux, macOS, or portable) - Removes null/example config; generated config is immediately usable and clearly documented - Extensive new documentation: build output, startup.json logic, visual guides, and code proofs - Publish profile now deletes existing files for clean deploys - No breaking changes: existing startup.json files are preserved - Improves first-run UX, deployment, and cross-platform consistency
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Quick Reference: Centralized lib Folder
|
||||
|
||||
## ✅ Status: Active
|
||||
|
||||
All DLL build output now goes to: `lib\[Configuration]\[TargetFramework]\`
|
||||
|
||||
---
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```powershell
|
||||
# Build Release
|
||||
dotnet build --configuration Release
|
||||
# Output: lib\Release\net11.0\*.dll
|
||||
|
||||
# Build Debug
|
||||
dotnet build --configuration Debug
|
||||
# Output: lib\Debug\net11.0\*.dll
|
||||
|
||||
# Run Jellyfin
|
||||
cd lib\Release\net11.0
|
||||
dotnet jellyfin.dll
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Folder Structure
|
||||
|
||||
```
|
||||
E:\Projects\pgsql-jellyfin\
|
||||
└── lib\ ← All DLLs here
|
||||
├── Debug\
|
||||
│ └── net11.0\ ← Debug builds
|
||||
└── Release\
|
||||
└── net11.0\ ← Release builds (247 DLLs)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
**File:** `Directory.Build.props`
|
||||
|
||||
```xml
|
||||
<PropertyGroup>
|
||||
<BaseOutputPath>$(MSBuildThisFileDirectory)lib\</BaseOutputPath>
|
||||
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
```
|
||||
|
||||
**Gitignored:** `/lib/` is excluded from git
|
||||
|
||||
---
|
||||
|
||||
## Deployment
|
||||
|
||||
```powershell
|
||||
# Package everything
|
||||
Compress-Archive -Path "lib\Release\net11.0\*" -DestinationPath "jellyfin-release.zip"
|
||||
|
||||
# Or copy folder
|
||||
Copy-Item "lib\Release\net11.0" -Destination "C:\Deploy\Jellyfin" -Recurse
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Benefits
|
||||
|
||||
✅ Single output location
|
||||
✅ Easy deployment
|
||||
✅ No duplicates
|
||||
✅ Cleaner repo
|
||||
✅ Faster builds
|
||||
|
||||
---
|
||||
|
||||
## Files Modified
|
||||
|
||||
- ✏️ `Directory.Build.props` (output configuration)
|
||||
- ✏️ `.gitignore` (lib folder exclusion)
|
||||
|
||||
---
|
||||
|
||||
**Documentation:** See `CENTRALIZED_LIB_FOLDER.md` for complete details
|
||||
Reference in New Issue
Block a user