[msbuild] Add opt-in shared client support for Windows remote builds
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- csharp, ios
- Ambito
- build-system, mobile
Direzione di ricerca
Start by identifying the owning Xamarin.MacDev.Tasks project and its existing SDK and messaging imports; the issue does not name specific source or test files. Reproduce the full managed graph build and real-child checks with explicitly supplied private dependencies, then verify the opt-in import order, task loading, inputs and fail-closed behavior. Done means the acceptance criteria pass while the default legacy graph and Apple package identities remain unchanged; published-head CI and review are still required.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Apple platform
iOS
Framework version
net11.0-*
Affected platform version
.NET 11; Windows client building an arm64 iOS Simulator application on a remote Mac.
Description
Track the minimal opt-in integration of privately supplied Microsoft.DevTools.Messaging.* and Microsoft.DevTools.Build.* dependencies into the Windows remote-build client. An implementation and SDK-boundary documentation are committed locally; no implementation branch or PR has been published.
The integration conditionally changes dependencies in the full owning Xamarin.MacDev.Tasks graph, adds an explicit SharedMessagingClient.targets import, and handles the related Exec caller contract. It rebuilds the owning task code rather than overlaying an adapter or replacing installed DLLs. No private generic source is copied into this repository. Default legacy dependencies, task wrappers/selectors, Apple package identities and Mac payloads must remain unchanged.
The SDK boundary requires the actual task assembly, runtime and companion properties before SDK evaluation registers tasks, followed by the shared import after the existing SDK/messaging imports. Task selectors and import names are not the owning DLL identity. Remote SDK roots must retain their trailing separator.
The real controller owns one existing Broker; child MSBuild uses engine-local connection state and explicit process identity and credential handoff. Do not fabricate a Visual Studio process ID or assume static state is shared across processes. Separate control/build SSH clients are allowed: one Broker does not promise one literal SSH transport. Secrets must not appear in command-line arguments, environment variables, task properties or logs.
Acceptance criteria
- Keep the integration explicitly opt-in and preserve the default legacy graph, existing wrappers/selectors and Apple package identities.
- Rebuild the full owning managed graph and verify its references and complete runtime closure, including all five private packages and selected runtime DLLs, using a fresh owned cache for reusable development versions. Do not use an overlay-only adapter.
- Provide reproducible real-child coverage for assembly selection, required/invalid inputs, import order and fail-closed behavior; distinguish task-load/parameter errors from the expected negative result.
- Document dependency provisioning, early task/runtime/companion properties, explicit SDK import order, remote-root separator requirements and secure controller/child setup.
- When an implementation branch is published separately, run CI and review against that exact published head before merge.
Existing local evidence and limits
The full .NET 11 owning managed graph and 12 offline real-child checks passed for a retained pre-publication candidate. Coordinated local validation also recorded a native arm64 iOS Simulator application build with child exit code 0, followed by inspection of the exact app on the Mac. These are retained candidate results, not fresh post-commit, published-head or CI proof.
No application install, launch or debugging result is claimed, and no Windows/Mac workload or task-binary equality is claimed. Generic source/package publication is outside this issue. App launch remains separate in #16609; companion CLI tracking is being handled separately in dotnet/maui-labs.
Steps to Reproduce
N/A as a public bug reproduction: this is integration tracking, and the opt-in dependencies are not publicly provisioned. Acceptance should reproduce the full managed build and real-child checks with explicitly supplied dependencies, then separately authorized native validation against the intended implementation head. An in-process fixture alone is not sufficient evidence of child task loading or remote building.
Did you find any workaround?
Keep using the unchanged default legacy client path until the opt-in integration and its dependency setup are reviewed and available. Do not replace installed workload DLLs or bypass the owning-graph rebuild.
Relevant log output
No raw logs or private attachments are included. This public summary intentionally omits machine-specific paths, host identity, credentials, process identifiers and local proof receipts.
[!NOTE]
This issue was generated with GitHub Copilot.
- Lingua principale
- C#
- Stelle
- 2.9k
- Fork
- 578
- Merge medio
- 2g 12h
- PR unite (30g)
- 189
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dotnet/macios
-
NSString(string) keeps an extra native reference, so every NSString created from a managed string leaksForse già presa @rolfbjarne l’ha presa 2 giorni fa. Apertabackport-to-net10.0 backport-to-net11.0 bug regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
dotnet/macios#27042 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Network] Align NWIPVersion enum values with native nw_ip_version_tForse già presa @rolfbjarne l’ha presa 2 giorni fa. Apertaapi-bindings copilot
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
dotnet/macios#26802 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Network] Bind the waiting state for NWBrowserStateForse già presa @rolfbjarne l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
ci-failure ci-postmortem tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Specifying both RuntimeIdentifier + RuntimeIdentifiers can confuse the build.Forse già presa @rolfbjarne l’ha presa 7 giorni fa. Apertabug msbuild regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
dotnet/macios#25463 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dotnet/macios
Issue simili
-
Add 'upm' tag on githubAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
bug mac アプリ: コード アプリ: チャット 優先: 中 要トリアージ
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
yksr-melt/Meltype#1346 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Collect corrected translations in the app, with no GitHub account and the least possible frictionApertalocalization medium ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
hexide-io/HexIDE#2819 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100