-
Notifications
You must be signed in to change notification settings - Fork 6.1k
[Breaking change]: MSBuild FileAccess types are now internal #37642
Copy link
Copy link
Closed
Labels
🏁 Release: .NET 8Work items for the .NET 8 releaseWork items for the .NET 8 release📌 seQUESTeredIdentifies that an issue has been imported into Quest.Identifies that an issue has been imported into Quest.binary incompatibleExisting binaries may encounter a breaking change in behavior.Existing binaries may encounter a breaking change in behavior.breaking-changeIndicates a .NET Core breaking changeIndicates a .NET Core breaking changesource incompatibleSource code may encounter a breaking change in behavior when targeting the new version.Source code may encounter a breaking change in behavior when targeting the new version.
Metadata
Metadata
Assignees
Labels
🏁 Release: .NET 8Work items for the .NET 8 releaseWork items for the .NET 8 release📌 seQUESTeredIdentifies that an issue has been imported into Quest.Identifies that an issue has been imported into Quest.binary incompatibleExisting binaries may encounter a breaking change in behavior.Existing binaries may encounter a breaking change in behavior.breaking-changeIndicates a .NET Core breaking changeIndicates a .NET Core breaking changesource incompatibleSource code may encounter a breaking change in behavior when targeting the new version.Source code may encounter a breaking change in behavior when targeting the new version.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Description
New APIs introduced to MSBuild in dotnet/msbuild#9214 will be removed or made internal for the final release of MSBuild 17.8/.NET SDK 8.0.100.
Version
.NET 8 GA
Previous behavior
The type
Microsoft.Build.Framework.FileAccesswas available to use andEngineServices.ReportFileAccesswas callable.New behavior
The type is now
Microsoft.Build.Experimental.FileAccessand may be changed or removed in a future MSBuild release.EngineServices.ReportFileAccess(FileAccessData)is callable only through private reflection and may break in a future MSBuild release.Type of breaking change
Reason for change
FileAccessDatais extremely detailed and Windows-specific. It's very difficult to create one correctly based on the .NET APIs you are using, so we expect to expose a better API in a future release.Recommended action
Delay implementation of a cache plugin until an improved API is delivered, or use private reflection to call
EngineServices.ReportFileAccess(Microsoft.Build.Experimental.FileAccess)until they are available. If you choose private reflection, you will be broken by a future release.Feature area
SDK
Affected APIs
These are removed:
struct Microsoft.Build.Framework.FileAccessMicrosoft.Build.Framework.EngineServices.ReportFileAccess(Microsoft.Build.Framework.FileAccess)Associated WorkItem - 177285