/UAI-Module

Build CSharp modules based on the UAI Pipeline

Primary LanguageC#

UAI Module

UAI Module is a versatile .NET 8.0 C# pipeline developed by UAI Software Inc. that enables users to generate a DLL, CLI, GUI, and MSI Installer within the same project. This repository aims to streamline the process of building, deploying, and distributing modules with multiple user interface options, making it suitable for a variety of applications and deployment environments.


Features

  • DLL Generation: Easily generate reusable DLLs to integrate with other .NET projects.
  • Command-Line Interface (CLI): Create a CLI version for command-line usage, perfect for automation and scripting.
  • Graphical User Interface (GUI): Develop a user-friendly GUI application using .NET's Windows Presentation Foundation (WPF).
  • MSI Installer: Generate a Windows Installer (MSI) package to facilitate easy installation on Windows systems.

Getting Started

Prerequisites

  • .NET 8.0 SDK
  • Windows OS (for MSI creation and GUI development)
  • Visual Studio for enhanced development experience
  • Git LFS (Large File Storage) for managing large files

Installation

  1. Clone the Repository
git clone https://github.com/UAISoftwareInc/UAI-Module.git
cd UAI-Module
git lfs fetch --all
  1. Restore NuGet Packages
dotnet restore
  1. Build the Solution
dotnet build

Build Commands

You can always just build from Visual Studio since thats recommended to not screw things up. But if you want to build from the command line, here are the commands.

  • Generate DLL

    dotnet publish -c Release -o ./dist/dll
  • Generate CLI Application

    dotnet publish -c Release -o ./outdistut/cli
  • Generate GUI Application

    dotnet publish -c Release -p:UseWPF=true -o ./dist/gui
  • Generate MSI Installer

    • To build the MSI, you will need to use a packaging tool like WiX Toolset or Visual Studio Installer Projects.

    • Ensure the MSI project references your main executable, and then build using:

      msbuild /p:Configuration=Release ./dist/installer/UAI_ModuleInstaller.wixproj

Project Structure

  • ./ - Contains the main codebase for DLL, CLI, and GUI versions.
  • dist/ - Build artifacts are saved here, separated into dll, cli, gui, and installer.

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details.

Support

For support, please open an issue or contact info@uai.contact.


By UAI Software Inc.