-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Building
Lively is developed using Visual Studio Community 2022 and require:
- .NET Core cross-platform development
- .NET Desktop Development
- WinUI 3 (Unpackaged)
- Required latest .NET Desktop SDK and .NET Framework 4.7.2
- Windows 10.0.22621 SDK.
Set CPU architecture to x64 from Any CPU.
Lively is split into separate application and communicate over grpc ipc protocol using namedpipes.
The Core (Lively project) is a wpf project and has no dependency on the main UI project.
The wallpaper player plugins are also separate projects and has no dependency on Core or UI project.
Plugins are structured in the Core folder as follows (Required):
- ../Plugins/UI
- ../Plugins/WebView2
- ../Plugins/Mpv
- ../Plugins/Watchdog
Optional plugins:
- ../Plugins/Cef
- ../Plugins/Wmf
- ../Plugins/Vlc
- ../Plugins/Libvlc
Create a Plugins folder inside the Core project, build and copy the required plugin there - the core project will copy it to output during build.
Lively's own wallpaper plugin programs are designed to close themselves in the event of unexpected shutdown - for the rest Watchdog is required.
-
Lively- Core that handles all the system tasks. -
Lively.Models- Data models shared between projects. -
Lively.Common- Helper functions and constants shared between projects. -
Lively.Common.Services- Commonly used services shared between projects. -
Lively.UI.Shared- Shared project with common UI code. -
Lively.UI.WinUI- Primary UI front-end. -
Lively.Grpc.Common- Grpc classes and proto files. -
Lively.Grpc.Client- Client library used to interact with the core. -
Lively.ML- Machine Learning library (Example: Depth wallpaper.) -
Lively.Player.Vlc- libVLC media wallpaper player. -
Lively.Player.WebView2- WebView2 html wallpaper player. -
Lively.Player.CefSharp- CefSharp html wallpaper player. -
Lively.Player.Wmf- Windows Media Foundation media wallpaper player. -
Lively.Utility.ConsoleDemo- Sample console project usingLively.Grpc.Clientlibrary. -
Lively.Utility.Watchdog- Program that monitors and cleans up resources in the event Lively core crashes unexpectedly. -
Lively.Utility.Screensaver- Screensaver utility. -
Lively.Utility.Commandline- Commandline control utility.
Most class libraries use .NET Standard 2.0 for compatibility.
Some plugins may use .NET Framework 4.7.2 to reduce build size.
Installer (x64):
- Set IsMsixRelease in Build.props to false.
- Include default wallpaper in
Lively\Bundle\Wallpapers\and themeLively\Bundle\Themes\folder in filename 0.zip,1.zip..etc - Download mpv player x64 and place in
Lively/Plugins/Mpvfolder. - Publish win10-x64 build of Lively UI with Frame-work dependent (installer will install runtime on host system.) setting and copy to
Lively/Plugins/UI/ - For beta build set
Constants.ApplicationType.IsTestBuildtotrue. - Publish win-x64 build of Lively core with
Frame-work dependentsetting (visual studio will copy bundle and plugins to output.) - Package using Inno installer script.
Microsoft store:
- Set IsMsixRelease in Build.props to true.
- Same as installer.
- Same as installer.
- Publish win-x64 build of Lively core with
Frame-work includedsetting. - Copy (4) output to
Lively.UI.WinUI\Buildfolder. - Package and publish
Lively.UI.WinUIinto msix. - Copy the msix file into src folder and convert to msixbundle file by using cmd:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\MakeAppx.exe" bundle /d "C:\src" /p C:\dest\out.msixbundle