🤖 Merge 'main' => 'xcode27.0'#25728
Conversation
## Summary This restores the quoting fix for `MlaunchPath` on the `11.0` preview line. The regression is in `Microsoft.Sdk.Mobile.targets`: the direct `Exec` path is quoted, but the generated install/run scripts and `RunCommand` were emitted without shell-safe quoting. When the SDK lives under a path containing a space, `dotnet build -t:Run` fails before `mlaunch` starts. ## Changes - quote `$(MlaunchPath)` in generated install scripts - quote `$(MlaunchPath)` in generated run scripts - quote `RunCommand` - update `MlaunchTest` expectations for the quoted script content / run command ## Validation so far - temporary pack-swap validation succeeded: replacing the installed `Microsoft.Sdk.Mobile.targets` with this patched file made `dotnet build -t:Run -f net11.0-ios` launch a MAUI sample app successfully when the SDK path contained a space Ref: #22481 This PR is recreated from #25673 (because our CI won't build from forks). --------- Co-authored-by: vitek-karas <10670590+vitek-karas@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
They're already clean. Looks like this will save ~2 min for every job.
We don't need to know whether we're building for a simulator or device when creating the list of frameworks, because now it's possible to specify different values for simulator vs device. This makes it possible to simplify the code a little bit. Most of this is indentation changes, so it's easier to review if hiding whitespace changes.
…25662) ## Description Building a MacCatalyst app inside Visual Studio on Windows ARM64 fails with: ``` error MSB4216: Could not run the "MakeDir" task because MSBuild could not create or connect to a task host with runtime "NET" and architecture "*". ``` ## Root cause Inside Visual Studio, our MSBuild tasks should run in-process using the `netstandard2.0` assemblies. This is controlled by the `_UseDesktopTaskAssemblies` property. When it is not set, the tasks instead use the `.NET` assemblies, which need a separate .NET task host. That task host does not work reliably from Visual Studio, and fails on Windows ARM64. #25417 set `_UseDesktopTaskAssemblies` for Visual Studio builds, but only in the iOS SDK. MacCatalyst, macOS and tvOS were missed, so they still try to use the .NET task host and break. ## Fix Set `_UseDesktopTaskAssemblies` in the shared `Xamarin.Shared.Sdk.props`, which is imported by all four platforms, so the workaround applies everywhere. The iOS SDK keeps setting it earlier (it also needs it for `CoreiOSSdkDirectory`); the `== ''` guard makes the shared copy a no-op for iOS. Ref: #25418 --------- Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This way it's copied back to Windows automatically after a remote build.
## Summary
- update `MSBuild.StructuredLogger` from `2.2.158` to `2.2.243`
- pick the smallest verified bump that fixes the local binlog parser crash
## Why
Local Apple test binlogs can record an empty `CurrentUICulture=` event under `LANG=C.UTF-8`.
With `MSBuild.StructuredLogger` `2.2.158`, the reader synthesizes `PropertyReassignment` messages from localized string resources, but those resources are only initialized after a non-empty culture event. When the binlog reaches the first `PropertyReassignment`, `Strings.PropertyReassignment` can still be null, which crashes parsing with `ArgumentNullException("format")` instead of reporting the actual build result.
`2.2.243` already contains the upfront string initialization that avoids that failure, so the same local binlogs parse successfully without needing a larger package jump.
## Validation
- built `tests/dotnet/UnitTests/DotNetUnitTests.csproj` on current `main`
- re-ran the standalone binlog repro against a previously failing successful local Apple binlog and `2.2.243` parsed property reassignments successfully
This PR is recreated from #25674 (because our CI won't build from forks).
---------
Co-authored-by: vitek-karas <10670590+vitek-karas@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…20260603175250477 to main (#25633) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260603175250477 to main with localized lcls
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da) - **Build**: [20260529.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2987132) ([316341](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/316341)) - **Date Produced**: May 29, 2026 3:33:16 PM UTC - **Commit**: [2cee83bf4841d72c9734a343f3003aeabdd46edf](dotnet/xharness@2cee83b) - **Branch**: [main](https://github.com/dotnet/xharness/tree/main) - **Dependency Updates**: - From [11.0.0-prerelease.26264.1 to 11.0.0-prerelease.26279.1][1] - Microsoft.DotNet.XHarness.iOS.Shared [1]: dotnet/xharness@51ca379...2cee83b
This pull request updates the following dependencies ## From https://github.com/dotnet/dotnet - **Subscription**: [da09b56a-0fb1-439a-b894-def14d2ec0a4](https://maestro.dot.net/subscriptions?search=da09b56a-0fb1-439a-b894-def14d2ec0a4) - **Build**: [20260612.3](https://dev.azure.com/dnceng/internal/_build/results?buildId=2998757) ([318480](https://maestro.dot.net/channel/10307/github:dotnet:dotnet/build/318480)) - **Date Produced**: June 12, 2026 12:29:31 PM UTC - **Commit**: [e4cee613b82457afd92ddfce82a67dcaaa227a84](dotnet/dotnet@e4cee61) - **Branch**: [release/10.0.4xx](https://github.com/dotnet/dotnet/tree/release/10.0.4xx) - **Dependency Updates**: - From [10.0.0-beta.26281.104 to 10.0.0-beta.26312.103][5] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.Build.Tasks.Feed - Microsoft.DotNet.SharedFramework.Sdk - From [10.0.400-preview.0.26281.104 to 10.0.400-preview.0.26312.103][5] - Microsoft.NET.Sdk - From [10.0.400-preview.26281.104 to 10.0.400-preview.26312.103][5] - Microsoft.TemplateEngine.Authoring.Tasks [5]: dotnet/dotnet@aec9216...e4cee61
Improve XML documentation for the `SystemConfigurationException` type: - Remove "To be added." placeholder entries - Add meaningful `<param>` and `<value>` descriptions - Simplify `<see cref>` references (remove redundant namespace qualifiers) - Reorder XML doc elements to standard order (summary, value, param) - Remove empty `<remarks>` nodes 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ixes #25397. (#25706) Fix real typos in API names by introducing correctly-spelled alternatives and deprecating the old misspelled names. ## Approach For **binding methods/properties**, the old name keeps `[Export]` to preserve virtual dispatch (no breaking API changes), and the new name uses `[Wrap]`. In `XAMCORE_5_0` only the correctly spelled name will remain with `[Export]`. For **enum values**, the old value is `[Obsolete]` with `[EditorBrowsable(Never)]` and will be removed in `XAMCORE_5_0`. For **delegate methods with `[EventArgs]`**, only a `#if XAMCORE_5_0` rename is possible (the binding generator requires EventArgs on all delegate methods). For **manual code** (non-generated), the correctly-spelled method is the implementation; the old misspelled name is a thin wrapper marked `[Obsolete]`. ## Fixed typos | Old name | New name | Type | |----------|----------|------| | StandarizePath | StandardizePath | method | | ReplaceOcurrences | ReplaceOccurrences | method | | DequeueNotificationsMatchingcoalesceMask | DequeueNotificationsMatchingCoalesceMask | method | | SkipDescendents | SkipDescendants | method | | SetParamDescriptorforKeyword | SetParamDescriptorForKeyword | method | | SetAttributeDescriptorforKeyword | SetAttributeDescriptorForKeyword | method | | InsertDescriptoratIndex | InsertDescriptorAtIndex | method | | SetDescriptorforKeyword | SetDescriptorForKeyword | method | | WilllDownloadToUrl | WillDownloadToUrl | method | | SetImageforSearchBarIcon | SetImageForSearchBarIcon | method | | SetPositionAdjustmentforSearchBarIcon | SetPositionAdjustmentForSearchBarIcon | method | | GetNumberofItems | GetNumberOfItems | method | | TitleWidthConstraintedToSize | TitleWidthConstrainedToSize | method | | IndexOfItemWithTargetandAction | IndexOfItemWithTargetAndAction | method | | TryToPerformwith | TryToPerformWith | method | | ConvertRectfromBacking | ConvertRectFromBacking | method | | UpdateSpellingPanelWithGrammarl | UpdateSpellingPanelWithGrammarString | method | | SetIconforFile | SetIconForFile | method | | SetAttributesforExportedKey | SetAttributesForExportedKey | method | | SortedArrayFromArraycollationStringSelector | SortedArrayFromArrayCollationStringSelector | method | | DenimonatorExpression | DenominatorExpression | property | | GpsDifferental | GpsDifferential | property | | ExhangeDataMaximumSize | ExchangeDataMaximumSize | property | | RightCallpoutOffset | RightCalloutOffset | property | | RoundToOddHermitean | RoundToOddHermitian | property | | CommitedLoad | CommittedLoad | delegate (XAMCORE_5_0) | | ReplacementValueForAttributevalue | ReplacementValueForAttributeValue | delegate (XAMCORE_5_0) | | UpdatedCharacterteristicValue | UpdatedCharacteristicValue | delegate (XAMCORE_5_0) | | SetBaseWritingDirectionforRange | SetBaseWritingDirection | abstract (XAMCORE_5_0) | | NLContextualEmebeddingKey | NLContextualEmbeddingKey | enum type (XAMCORE_5_0) | | ExifSubsecTimeOrginal | (already obsoleted) | field | | WarichuPunctiation | WarichuPunctuation | enum value | | TrackableArae | TrackableArea | enum value | | DissapearingItemDefault | DisappearingItemDefault | enum value | | OcclussionAttenuation | OcclusionAttenuation | enum value | | FourtyMHz | FortyMHz | enum value | | ProcAppactive | ProcAppActive | enum value | | FromIdentityCertificatesPersistance | Create | static method | | PropogateAttachments | PropagateAttachments | method | | SetLocalEventsFilterDuringSupressionState | SetLocalEventsFilterDuringSuppressionState | method | | GetLocalEventsFilterDuringSupressionState | GetLocalEventsFilterDuringSuppressionState | method | | LocalEventsSupressionInterval | LocalEventsSuppressionInterval | property | | GpsDifferentalKey | GpsDifferentialKey | field | | Various others | (see enum fixes) | enum values | ## Other changes - Rewrote the introspection `TypoTest` to use a word-level dedup approach (faster and more reliable) - Documented all remaining allowed typos with comments explaining why they are valid - Wrapped typos that are fixed only in `XAMCORE_5_0` with `#if !XAMCORE_5_0` in the allowed list Fixes #25397 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The no-xcode-build target (used on Linux) was unconditionally adding registrar generation targets for all platforms. When some platforms are disabled (e.g. only iOS is enabled), the prerequisite DLLs don't exist and make fails with 'No rule to make target'. Wrap each group of RunRegistrar eval calls with the corresponding INCLUDE_IOS/INCLUDE_TVOS/INCLUDE_MACCATALYST/INCLUDE_MAC guards so only enabled platforms have their registrar rules defined. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Extract the static optimization methods from OptimizeGeneratedCodeHandler into a new standalone OptimizeGeneratedCode class. The handler class now only contains the linker-specific scaffolding and delegates to the new class. This makes the optimization logic reusable without depending on the linker's ExceptionalMarkHandler base class. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refactor the big switch statement in the LinkerConfiguration constructor into a GetConfigurator() method that returns a dictionary of (Load, Save) delegate pairs for each configuration key. This enables both reading configuration from file and writing/serializing the current configuration state. Also add a Save() method that uses the configurator to write out the current configuration state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… AppBundleRewriter. Move FindNSObjectConstructor, FindINativeObjectConstructor, ImplementConstructNSObjectFactoryMethod, ImplementConstructINativeObjectFactoryMethod, and AddTypeInterfaceImplementation from ManagedRegistrarLookupTablesStep to AppBundleRewriter, and update all call sites accordingly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…er steps. Create an 'assembly-preparer' tool that performs assembly pre-processing (currently done by custom linker steps) as a standalone build step, gated behind the opt-in `PrepareAssemblies=true` MSBuild property. Key changes: * New `tools/assembly-preparer/` library with scaffolding that emulates a subset of ILLink's API (this makes it easy to reuse the code for existing custom trimmer step by just running the same steps in the new assembly-preparer tool instead). * New `PrepareAssemblies` MSBuild task and `_PrepareAssemblies` target in Xamarin.Shared.targets. * When `PrepareAssemblies=true`, most custom linker steps/mark handlers are disabled in the trimmer pipeline (conditions added to Xamarin.Shared.Sdk.targets). * Refactor `LinkerConfiguration.cs` with `#if ASSEMBLY_PREPARER` to support both linker and assembly-preparer contexts. * New test project `tests/assembly-preparer/` with tests for the assembly preparation steps. * Add xharness test variation for running with assembly-preparer enabled. * New `tools/ap-launcher/` to invoke the tool from the command line; this is useful during debugging. Contributes towards #17693.
…er steps. (#25652) Create an 'assembly-preparer' tool that performs assembly pre-processing (currently done by custom linker steps) as a standalone build step, gated behind the opt-in `PrepareAssemblies=true` MSBuild property. Key changes: * New `tools/assembly-preparer/` library with scaffolding that emulates a subset of ILLink's API (this makes it easy to reuse the code for existing custom trimmer step by just running the same steps in the new assembly-preparer tool instead). * New `PrepareAssemblies` MSBuild task and `_PrepareAssemblies` target in Xamarin.Shared.targets. * When `PrepareAssemblies=true`, most custom linker steps/mark handlers are disabled in the trimmer pipeline (conditions added to Xamarin.Shared.Sdk.targets). * Refactor `LinkerConfiguration.cs` with `#if ASSEMBLY_PREPARER` to support both linker and assembly-preparer contexts. * New test project `tests/assembly-preparer/` with tests for the assembly preparation steps. * Add xharness test variation for running with assembly-preparer enabled. * New `tools/ap-launcher/` to invoke the tool from the command line; this is useful during debugging. Contributes towards #17693.
Improve XML documentation for the `StatusCodeError` type: - Remove "To be added." placeholder entries - Add meaningful `<param>` and `<returns>` descriptions - Simplify `<see cref>` references (remove redundant namespace qualifiers) - Reorder XML doc elements to standard order (summary, param, returns) - Remove empty `<remarks>` nodes 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…liability. (#25705) ## Summary Replaces all httpbin.org dependencies in monotouch-test with an in-proc HTTP server (`HttpbinTestServer`), eliminating external network flakiness from these tests. ## Changes - **New file: `HttpbinTestServer.cs`** — A lightweight `HttpListener`-based server that implements all httpbin.org endpoints used by tests: `/get`, `/post`, `/cookies`, `/cookies/set`, `/redirect/{n}`, `/redirect-to`, `/basic-auth`, `/digest-auth`, `/gzip`, `/html`, `/status/{code}`. - **Updated `NetworkResources.cs`** — `Httpbin.Url` now points to the local server instead of `https://httpbin.org`. Removed httpbin from `HttpsUrls` array since the local server is HTTP-only. - **Removed CI-ignore patterns** — Tests that now hit the local server no longer need `IgnoreInCI`/`IgnoreInCIIfBadNetwork`/`Assert.Inconclusive` workarounds. Tests still using external URLs (microsoft.com, badssl.com) retain their CI-ignore patterns. - **SSL tests unchanged** — Tests requiring real HTTPS (SSL certificate validation) still use `NetworkResources.MicrosoftUrl`. 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
✅ [PR Build #9797705] Build passed (Detect API changes) ✅Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
✅ [PR Build #9797705] Build passed (Build packages) ✅Pipeline on Agent |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
✅ [PR Build #9797705] Build passed (Build macOS tests) ✅Pipeline on Agent |
🔥 [CI Build #9797705] Test results 🔥Test results❌ Tests failed on VSTS: test results 0 tests crashed, 22 tests failed, 188 tests passed. Failures❌ monotouch tests (macOS)1 tests failed, 23 tests passed.Failed tests
Html Report (VSDrops) Download ❌ monotouch tests (tvOS)21 tests failed, 0 tests passed.Failed tests
Html Report (VSDrops) Download Successes✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
|
⏭️ Skipping merge update: this PR is a draft. Convert to ready when you want automated updates to resume.
|
Automated merge of
mainintoxcode27.0.Created by the code-radiator workflow.
Merge Details
This merge had conflicts that were resolved as follows:
NaturalLanguage/Enums.cs