templating
templating copied to clipboard
Remove .NET Standard 1.x dependencies and cleanup
- Avoid .NET Standard 1.x dependencies in the repository completely. The remaining test package dependency that brings netstandard1.x is FakeItEasy. For that one, upgrade the transitive Castle.Core dependency to 5.x. I also opened an issue in FakeItEasy to discuss upgrading the Castle.Core dependency. This results in the repository not being affected by CVEs / vulnerable packages like System.Private.Uri that are part of the .NET Standard 1.x dependency graph. (cc @MichaelSimons, @mmitche, @ericstj)
- Upgrade projects that use "System.Runtime.Loader" from netstandard2.0 to .NETCoreApp as that API is only availble on .NETCoreApp anyway but keep the netstandard2.0 TFM. The package that was used hasn't shipped for years anymore and was never intended to be used on .NET Standard (support for it was later removed). Because of that, new nullable reference type errors were raised by the compiler which I suppressed temporarily by downgrading the Nullable property to "annotations".
- Clean-up code files
- Use consistent indentation
- Empty lines after Project and before closing tag
- Empty lines between Property/Item groups
- Remove unused msbuild properties
- Delete unused or non-necessary files (i.e. Build.props).
- Remove unnecessary "<?xml" and "ToolsVersion" tags in files that don't need them (msbuild).
- Define Newtonsoft.Json package version in Packages.props instead of hardcoding it where it is used.
- Use the implicitly (by the SDK) defined #if NETFRAMEWORK compiler preprocessor directive instead of a custom "NETFULL" one.
- Remove one "#nullable enable" statement that wasn't necessary anymore as all projects that included the source file already enabled nullable.
- Use floating TFM version that is defined in Arcade: "NetCurrent"
- For the .NET Framework TFM msbuild property, use the same nomenclature as in other repos.
- Do not define a floating TFM msbuild property for netstandard2.0 as that TFM will never change to a higher version.
- Change how the live Microsoft.NETCore.App targeting/runtime pack is upgraded in this repository to allow previous TFMs to be targeted as well (for msbuild tasks).
- Remove the "PackSpecific" msbuild property and its conditions as .NET Framework assets can be built and packaged on Unix machines these days with the dynamic reference on .NET Framework targeting packs.
Spring cleaning in .NET! Lovely @ViktorHofer
Hi @ViktorHofer,
Do you still plan to deliver these changes?
Do you still plan to deliver these changes?
Yes, I will get back to in the coming weeks. Changing to draft PR.
@ViktorHofer, is it still true that you're planning to get back to this, or should we close it for now?