[msbuild] Enable nullability for the remaining files in this directory.#25035
[msbuild] Enable nullability for the remaining files in this directory.#25035rolfbjarne wants to merge 1 commit intomainfrom
Conversation
And fix any resulting issues.
There was a problem hiding this comment.
Pull request overview
Enables nullable reference types in msbuild/Messaging/Xamarin.Messaging.Build source files and addresses resulting nullability issues/warnings in the build messaging agent/runtime.
Changes:
- Switched the remaining files from
#nullable disableto#nullable enable. - Updated API surface to reflect nullable optional parameters (
string?). - Adjusted deserialization and path-handling code to compile under nullable analysis.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| msbuild/Messaging/Xamarin.Messaging.Build/TaskRunner.cs | Enables nullable and adjusts deserialization and dotnet path/root-path logic. |
| msbuild/Messaging/Xamarin.Messaging.Build/BuildAgent.cs | Enables nullable, updates ctor optional parameters, and adjusts environment-variable setup. |
Comments suppressed due to low confidence (1)
msbuild/Messaging/Xamarin.Messaging.Build/BuildAgent.cs:74
Path.GetDirectoryName (assemblyLocation)can return null (for example whenAssembly.Locationis empty in single-file/dynamic scenarios). The null-forgiving operator would then allow a nullpathto flow intoAddValueToEnvVariable, causing runtime exceptions. Consider using a non-null source likeAppContext.BaseDirectory/ProcessPath, or add an explicit null/empty check with a clear failure mode before usingpath.
var assemblyLocation = this.GetType ().Assembly.Location;
var path = Path.GetDirectoryName (assemblyLocation)!;
AddValueToEnvVariable ("MONO_GAC_PREFIX", path);
AddValueToEnvVariable ("PATH", path);
AddValueToEnvVariable ("PKG_CONFIG_PATH", path);
✅ [CI Build #de978a1] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #de978a1] Build passed (Detect API changes) ✅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 |
✅ [CI Build #de978a1] Build passed (Build macOS tests) ✅Pipeline on Agent |
And fix any resulting issues.