Create a C#/.NET Application
FlawDesk supports two C# workflows:
- Windows apps (WPF, WinForms, console apps) — the build runs on GitHub Actions (Windows runner)
- NuGet libraries — pack & push to
packages.flawdesk.de(private tenant NuGet feed)
Prerequisites
- A workspace in FlawDesk
- A GitHub account
1. Create a project & link the repo
1. Sidebar -> + New Project -> name, key, type: Code 2. Create the repo on github.com yourself 3. Project -> ⚙️ -> Code tab -> GitHub repo section -> owner + repo name -> Save
2a. Add a module — Windows app
1. Project -> ⚙️ -> Code tab -> + Add module 2. Fields:
- Type:
windows-app - csproj path: e.g.
src/MyApp/MyApp.csproj - Runtime:
win-x64(default) - Publish format:
zip/exe/msi
3. Save
2b. Add a module — NuGet library
1. Project -> ⚙️ -> Code tab -> + Add module 2. Fields:
- Type:
nuget-library - csproj path: the relative path of the
.csproj
3. Save
3. Write the workflow file into the repo
Project -> ⚙️ -> Workflow tab -> "Push to create" — FlawDesk creates the matching GitHub Actions workflow.
4. Trigger a build
1. NavRail -> rocket icon 2. Select the module, set the version and configuration (Release/Debug) 3. Start build
For Windows apps: GitHub Actions builds on a Windows runner, and the artifact lands under _releases/.
For NuGet libraries: dotnet pack + push to packages.flawdesk.de.
Consuming the NuGet feed in other projects
Project -> ⚙️ -> Code tab -> module -> Dependencies section -> + Add -> type NuGet feed -> source kind: flawdesk-packages.
On the next build, nuget.config is materialized automatically with the right credentials.
Common problems
"csproj not found" — provide csproj_path relative to the repo root, including the file name.
"exe format but you get a .zip" — PublishSingleFile is missing in the csproj:
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
"NuGet push 409 Conflict" — the version already exists in the feed. Bump the version.
"NuGet push 401 Unauthorized" — the API key has expired. Workspace -> Settings -> FlawDesk Packages -> regenerate the key.