Skip to content

fix(cli): resolve the runtime pack with the desktop publish properties - #156

Merged
NastMz merged 2 commits into
mainfrom
fix/runtime-pack-publish-properties
Nov 13, 2026
Merged

NastMz merged 2 commits into
mainfrom
fix/runtime-pack-publish-properties

Conversation

@NastMz

@NastMz NastMz commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Fixes the nightly validate failure: every native package job stopped with NETSDK1004 ("Assets file '.../obj/project.assets.json' not found").

Cause

#153 added a step after dotnet publish that asks MSBuild which .NET runtime pack the build used (Packaging.RuntimePack).

  • The desktop publish passes -p:MicroEngineNativePackage=true. In this repository that property moves the restore output to obj/package/ (Directory.Build.props).
  • The query ran without it, so it read obj/. That folder exists only if something built the project before.
  • The PR's CI jobs had built the solution first, so they passed. Validate's package jobs start clean, so they fail.

0.6.0-alpha.1 ships this bug. It reaches only games whose Directory.Build.props moves the restore output based on the publish properties, the repository's demos included.

Change

  • Packaging.DesktopPublishProperties: one list given to both the publish and the runtime-pack query, so the two can't drift apart. The browser, Android and iOS paths already passed their properties.
  • A regression test with a real project outside the repository, whose Directory.Build.props moves obj/. The query resolves the pack with the properties and fails without them.
  • An entry under ## Next release in the release notes. Production now holds until the next SDK release.

Checks (local)

  • RED: with games/MeadowRun/obj removed, node packaging/package.mjs MeadowRun --target windows-x64 failed with the same NETSDK1004 as CI.

  • GREEN: the same command builds the package, and packaging/verify.mjs passes it (13/13 captures against the reference renderers).

  • MicroEngine.Cli.Tests: 33 passed, 1 skipped. Site tests: 71/71. version.mjs check passes.

  • From a clean games/NeonRift/obj, node packaging/package.mjs NeonRift --target linux-x64 builds the Linux package (built on Windows). It carries the .NET 10.0.15 runtime licences, and build-info.json says "dotnet": "10.0.15".

Not run: the macOS package, which shares the same code path. A manual validate on this branch (runs 43466403495 and 43466714696) skipped its whole Supported group without building anything, so the package jobs did not run there. That is a separate problem with the workflow, not with this fix. The next nightly on main will build them.

🤖 Generated with Claude Code

A demo's publish moves its restore output to obj/package/ (MicroEngineNativePackage); the runtime pack query ran without that property and read obj/, which a fresh checkout lacks, so every native package job of the nightly validation failed with NETSDK1004.
@github-actions

Copy link
Copy Markdown

Preview of acff5b4 (candidates demos): https://micro-engine-ax3pniel5-nastmzs-projects.vercel.app

@NastMz

NastMz commented Nov 13, 2026

Copy link
Copy Markdown
Owner Author

validate run 43467981690 (the workflow from #157, against this branch, with .NET and native packages selected):

  • The native packages for all four games pass on Windows, Linux and macOS. Before this change, every one of them failed with NETSDK1004.
  • Of the four Android packages, three pass. CourtyardKey for Android built, but on the emulator its title scenario got no result in 240 s.

🤖 Addressed by Claude Code

@NastMz
NastMz merged commit 7ae8e05 into main Nov 13, 2026
60 of 64 checks passed
@NastMz
NastMz deleted the fix/runtime-pack-publish-properties branch November 13, 2026 17:34

This branch was successfully deployed

1 active deployment
preview — acff5b47 Deployed Nov 13, 2026 by NastMz via Site / Deploy preview #415
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant