Install
$ agentstack add skill-xmake-io-xmake-skills-xmake-csharp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Building C# with Xmake
Xmake drives the C# compiler (Mono mcs or modern .NET csc/dotnet) through a target model similar to C++.
1. Minimal project
add_rules("mode.debug", "mode.release")
target("hello")
set_kind("binary")
add_files("src/*.cs")
2. Target kinds
target("app") set_kind("binary") -- .exe
target("mylib") set_kind("shared") -- .dll (class library)
3. Toolchain
xmake f --toolchain=mcs -- Mono compiler
xmake f --toolchain=dotnet -- .NET SDK (csc)
Pin a specific install with --sdk:
xmake f --toolchain=dotnet --sdk=/usr/share/dotnet/sdk/8.0.100
4. References
target("app")
add_files("src/*.cs")
add_csflags("/reference:System.dll", "/reference:System.Core.dll")
-- Or the modern, portable form:
add_values("cs.references", "System.dll", "System.Core.dll")
For NuGet / .NET SDK projects, prefer a real .csproj consumed via dotnet build — xmake's direct C# support is best for small / standalone tools.
5. Mixing with native code (P/Invoke)
target("nativelib")
set_kind("shared")
add_files("native/*.c")
target("app")
set_kind("binary")
add_files("src/*.cs")
add_deps("nativelib")
In Program.cs:
using System.Runtime.InteropServices;
class Program {
[DllImport("nativelib")]
static extern int hello(int x);
}
Xmake places nativelib.dylib/.so/.dll next to the managed binary so the runtime loader finds it.
6. Flags
target("app")
add_files("src/*.cs")
add_csflags("-unsafe", "-nowarn:1591")
add_csflags maps to C# compiler flags.
Pitfalls
xmakeis notdotnet build. Complex .csproj projects (NuGet, SDK-style projects, Razor, WPF designers) should go throughdotnet buildinside atask(...)instead of xmake's native C# support.- Missing
System.dllreferences. Modern .NET Core doesn't need them (implicit); Mono does. Test with the toolchain you'll ship on. - Managed DLL + native DLL path mismatch. P/Invoke lookups fail if the native DLL isn't on
PATHor next to the .exe. Xmake's default placement handles the common case.
When to branch out
- Native library interop →
xmake-targets - Packaging a C# app →
xmake-xpack
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: xmake-io
- Source: xmake-io/xmake-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.