W.R.T to #1686
If we do get a Base SDK and/or a Managed SDK that's above .NET SDK, then I would propose to unify the Import Extensibility points they offer.
Base SDK props
Directory.Build.props
<ProjectName>.<Vendor>.Before.props
Any SDK props
CustomBefore<SdkName>Props
<SDK props>
CustomAfter<SdkName>Props
Base SDK props
<ProjectName>.<Vendor>.After.props
Project File
CustomImportBeforeProject / CustomBefore<ProjectName> / Custom.Project.props
<Project File>
CustomImportAfterProject / CustomAfter<ProjectName> / Custom.Project.targets
Base SDK targets
<ProjectName>.<Vendor>.Before.targets
Any SDK targets
CustomBefore<SdkName>Targets
<SDK targets>
CustomAfter<SdkName>Targets
Base SDK targets
<ProjectName>.<Vendor>.After.targets
Directory.Build.targets
NOTE: Custom Before/After are user extensibility points. They are optional as they depend on the SDK implementers. MSBuildSdks already follows the Custom pattern I mentioned above.
W.R.T to #1686
If we do get a Base SDK and/or a Managed SDK that's above .NET SDK, then I would propose to unify the Import Extensibility points they offer.
Base SDK props
Directory.Build.props<ProjectName>.<Vendor>.Before.propsAny SDK props
CustomBefore<SdkName>Props<SDK props>CustomAfter<SdkName>PropsBase SDK props
<ProjectName>.<Vendor>.After.propsProject File
CustomImportBeforeProject/CustomBefore<ProjectName>/Custom.Project.props<Project File>CustomImportAfterProject/CustomAfter<ProjectName>/Custom.Project.targetsBase SDK targets
<ProjectName>.<Vendor>.Before.targetsAny SDK targets
CustomBefore<SdkName>Targets<SDK targets>CustomAfter<SdkName>TargetsBase SDK targets
<ProjectName>.<Vendor>.After.targetsDirectory.Build.targetsNOTE:
Custom Before/Afterare user extensibility points. They are optional as they depend on the SDK implementers. MSBuildSdks already follows theCustompattern I mentioned above.