TL;DR
- Stack: MonoGame 3.8.1 DesktopGL (+ .NET 8 SDK) · Nez built from latest HEAD
- Goal: ship a tiny 320 × 180 game that loads a
tiled/arena_01.tmxmap - Problem:
- Project still references
extern/Nez/Nez.PipelineImporter/Nez.PipelineImporter.csproj - MGCB lines
/importer:Nez.TiledMapImporter+/build:tiled/arena_01.tmx - Nez upstream nuked all PipelineImporter code—build explodes (
MSB4009, then “Importer had creation failure”)
- Project still references
- Spent: 7 + hours → read release notes, grepped the repo, no current docs
Ask: Is “runtime copy + Content.LoadTiledMap()” now the blessed method?
Any hidden gotchas (Linux case-sens., System.Drawing.Common 8.0, etc.)?
If a new official importer exists, where is it?
Below is the verbose version in case anyone wants the gory details or needs to reproduce.
1 Environment
| Item | Value |
|---|---|
| OS | Windows 11 (22H2) |
| .NET SDK | 8.0.203 |
| MonoGame | 3.8.1.303 DesktopGL |
| Nez | latest HEAD (4d35b4a as of tonight) |
| Project type | WinExe, net8.0, C# latest |
2 Project highlights
<!-- MemoryRepoNez.csproj (excerpt) -->
<ItemGroup>
<!-- MonoGame runtime packages -->
<PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.1.303" />
<PackageReference Include="MonoGame.Content.Builder.Task" Version="3.8.1.303" />
<!-- Nez built from source -->
<ProjectReference Include="extern\Nez\Nez.Portable\Nez.MG38.csproj" />
<!-- ❌ Problem line – Nez removed this project years ago -->
<ProjectReference Include="extern\Nez\Nez.PipelineImporter\Nez.PipelineImporter.csproj" />
</ItemGroup>
Content/Content.mgcb still contains
/importer:Nez.TiledMapImporter
/build:tiled/arena_01.tmx
3 Exact commands & failures
dotnet clean; dotnet restore; dotnet build -v:q -clp:ErrorsOnly
- MSB4009 “Project file could not be found” →
Nez.PipelineImporter.csproj - Commented that reference out ⇒ MGCB runs, but now:
error: Processor or Importer 'Nez.TiledMapImporter' had creation failure! → System.IO.FileNotFoundException: Could not load assembly 'Nez.PipelineImporter'
4 What I tried (chronological)
| Step | Result |
|---|---|
Commented-out <ProjectReference> |
Build passes, game crashes at runtime (TMX not found) |
| Added `<Content Include="Content***.tmx | png" CopyToOutputDirectory="PreserveNewest" />` |
Grepped Nez repo for PipelineImporter |
Last seen around tag v0.9.x; removed in v0.10.0 |
| Looked for replacement importer | Nothing obvious in repo, docs, or Discord search |
5 Open questions
- Is runtime-loading TMX the intended 2024 workflow?
(If so, I’ll nuke every/importer:line and ship raw assets.) - Cross-platform pitfalls?
Linux/macOS case sensitivity, libgdiplus vagaries with System.Drawing 8.0… - MonoGame 3.8.2-preview looks tempting for .NET 8 fixes—safe to upgrade now?
- Any automated test other Nez users run to ensure every TMX/PNG pair actually copies to
bin/?
Seven hours later my brain resembles overcooked ramen—any pointers appreciated.
Thanks! 🙏