- correct Helix test failures with stable versions, where SDK's packs aren't enough
E.g. from https://dev.azure.com/dnceng/internal/_build/results?buildId=813814
``` text
...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: The "ResolveTargetingPackAssets" task failed unexpectedly. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj]
...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\.dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\data\FrameworkList.xml'. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj]
```
- set the package version of Extensions assemblies using NETCore.App version
- ignore Microsoft.Extensions.Internal.Transport package version
- transport package has a non-stable version and isn't shipped
- just got lucky this worked before versions stabilize
- update test expectations when checking PackageOverrides.txt
- use NuGet.Versioning to make this easier
- dotnet-watch builds against runtime in the SDK
- other projects build after runtime project due to Ref.csproj reference
- but, when the targeting packs aren't building, there's no reason to use Ref.csproj
- followup on 76fbd1a283 and 84962660a3, reducing parallelism in build
- include all shipping packages in Helix payloads that need runtime
- remove hard-coded `-ci` that broke Helix tests with stable versions or local builds
- for local builds, do not assume `$(Configuration)` is Release
- support `$(HelixTargetQueues)` property used in RunHelix.ps1
- lost somewhere along the lines; script ran full matrix
nits:
- clean up redundant addition of runtime and ref/ packages
- `@(HelixContent)` additions in `_CreateHelixWorkItem` target are ignored
- mention '+' separation of `-HelixQueues` argument to RunHelix.ps1
- allow `$(IsUnitTestProject)` override in case we need it in the future
* Correct `$(SharedFxVersion)` and `$(TargetingPackVersion)` values
- Ensure `$(SharedFxVersion)` doesn't change in `$(NoSemVer20)` projects
- Ignore current project's `$(VersionSuffix)` in `$(TargetingPackVersion)`
- Never assume `$(AspNetCoreBaselineVersion)` matches released targeting pack
- Stabilize both versions correctly
- Use these properties more widely
- Remove other mechanisms to get the same values
- Reduce use of the `_GetPackageVersionInfo` target
- Reduce use of `$(SharedFxVersion)` for the targeting pack
nits:
- Correct comments about old RTMVersions.csproj project
- Fix or remove a few other comments
* Do not pass package filenames on Helix command Lines
- remove parsing of these command-line arguments from `RuntestOptions`
- instead craft the names using passed `$(SharedFxVersion)`
- restore `$(DotNetRuntimeSourceFeedKey)` on Helix command line
- lost somewhere along the line
- correct argument count in runtests.sh
- treated 11th argument as both Helix timeout and feed credential
- count was messed up somewhere alone the line
nits:
- update C# syntax in `RuntestOptions` e.g. remove unused `public` setters
- sort and group properties and their assignments
[release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime dotnet/efcore
- Updates:
- System.ComponentModel.Annotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Diagnostics.DiagnosticSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Diagnostics.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.DirectoryServices.Protocols: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Console: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Primitives: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Http: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyModel: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Hosting: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.Platforms: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Win32.Registry: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Win32.SystemEvents: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Internal: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Ref: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Drawing.Common: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Threading.Channels: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Windows.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Text.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Text.Encodings.Web: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.ServiceProcess.ServiceController: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.IO.Pipelines: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.Http.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.Http.WinHttpHandler: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Reflection.Metadata: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.AccessControl: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Cng: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Pkcs: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Permissions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Principal.Windows: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Resources.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Updates:
- Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- dotnet-ef: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Updates:
- Microsoft.DotNet.Build.Tasks.Installers: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- Microsoft.DotNet.Helix.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- Microsoft.DotNet.Arcade.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- System.IO.Pipelines Fix
(cherry picked from commit 520b9e23f027d7cca49d33f1dc6b2a0e57c893b3)
- Skip reference check of System.IO.Pipelines ref/ assembly
- add Framework projects to solution
- add Framework.slnf and startvs.cmd in src/Framework
- Merge branch 'release/5.0-rc2' into darc-release/5.0-rc2-d6b9c1c0-be36-4d12-b860-e7e54a75cb6d
* Remove Internal.AspNetCore.Analyzers
This resolves build flakiness caused by referencing the analyzer:
```
2020-08-07T21:22:39.1149296Z ##[error].dotnet\sdk\5.0.100-rc.1.20379.10\Microsoft.Common.CurrentVersion.targets(4188,5): error MSB3026: (NETCORE_ENGINEERING_TELEMETRY=Build)
Could not copy "F:\workspace\_work\1\s\artifacts\obj\Internal.AspNetCore.Analyzers\Release\netstandard1.3\Internal.AspNetCore.Analyzers.dll"
to "F:\workspace\_work\1\s\artifacts\bin\Internal.AspNetCore.Analyzers\Release\netstandard1.3\Internal.AspNetCore.Analyzers.dll". Beginning retry 1 in 1000ms.
The process cannot access the file 'F:\workspace\_work\1\s\artifacts\bin\Internal.AspNetCore.Analyzers\Release\netstandard1.3\Internal.AspNetCore.Analyzers.dll' because it is being used by another process.
```
The analyzer checks if pubternal types are being exposed in public APIs. We no longer author pubternal types, so this is no longer a concern.
* Remove DisablePubternalApiCheck
* Remove all ref/ projects
* Remove GenAPI infrastructure
* Remove notion of a reference assembly project
- remove `$(IsReferenceAssemblyProject)`, `$(ReferenceReferenceAssemblies)` and `$(ReferenceImplementationAssemblies)`
- remove unnecessary `$(NoWarn)` settings
nits:
- remove a few misleading comments
- wrap some long lines
* Move .0 package version workaround into Versions.props
- touch up SharedFramework.External.props
* Expose `%(LatestPackageReference.RTMVersion)` metadata
- automate use of properties in the `@(LatestPackageReference)` item group to make this maintainable
- add a couple of special cases at the bottom of eng/Dependencies.props
- add one more `$(...PackageVersion)` property to avoid yet-another special case
* Enable Roslyn reference assemblies
- exclude ref/ assembly from packages other than targeting pack
- update Microsoft.AspNetCore.App.Ref.csproj
- `%(IsReferenceAssembly)` and `%(ReferenceGrouping)` metadata no longer relevant
- only ref/ assemblies are in `@(ReferencePathWithRefAssemblies)` item group
nits:
- remove now-unnecessary workaround
- issues with TFM transition are behind us
- clean up Microsoft.AspNetCore.App.Runtime.csproj slightly
- use `GeneratePathProperty="true"`
- reorder item / property settings for meta-expansion
- correct spelling errors and phrasing in comments
* Update documentation to reflect recent changes
- remove CrossRepoBreakingChanges.md; was tied to old TeamCity infrastructure
- also much less relevant given repo merges
- adjust details and examples in ReferenceResolution.md
- reflect repo merges, Dependencies.props changes, and current Maestro++ channels
- add a few more details e.g. specific files where Version.Details.xml versions are used
* !fixup! Remove another irrelevant doc file
* !fixup! Address PR review suggestions
- convert a couple of warnings to errors
- use consistent casing for Microsoft.NETCore.App.Runtime.* packages
- reduce `%(LatestPackageReference.Version)` metadata special cases
- add and improve comments e.g.
- improve comments about `$(*V0PackageVersion)` properties
- improve placement of comments about item removal in ResolveReferences.targets
- confirmed `$(*V0PackageVersion)` property list is complete
nits:
- fix solution example in ReferenceResolution.md
- remove item group definition for `@(LatestPackageReference)`
- remove `%(LatestPackageReference.VersionName)` metadata after use; large item group
- similarly, remove `%(LatestPackageReference.RTMVersion)` when not needed; just complicates `Condition`s
When I squash, I must remember this fixes
- #14801
- dotnet/aspnetcore-internal#2693
* Actually use `%(LatestPackageReference.RTMVersion)` metadata
- gather RTM package references in a new project
- a (very) separate project to work around package conflict resolution
- empty `Test` target works around Arcade's testing approach
- new target in ResolveReferences.targets updates relevant assembly paths to use the RTM packages
- done as soon as possible after `ResolvePackageAssets` determines the paths
- done for all compilation inputs, not just ref/ assemblies
* Add sharedfx and targeting pack tests (#23045)
* Add test for assembly versions
* Add test for framework list
* Add some hardcoded lists for sharedfx and targeting pack content
* Fix failing tests
* Fix targeting pack tests
* Feedback
* nit: Remove useless `$(HasReferenceAssembly)` settings
- set in /Directory.Build.targets
- `true` only in `$(IsAspNetCoreApp)` projects
* nit: Remove useless `$(CompileUsingReferenceAssemblies)` settings
- no current versioning differences between ref/ and src/ assemblies when targeting default TFM
* Add more `$(GenerateDocumentationFile)` settings
- increases the number of generated doc files, mostly without problems
- !fixup! correct typo in `DebugProxyHost` doc comments
- was not generating a doc file before
- remove previous (ineffective) src/Components/Directory.Build.targets setting
- nit: remove a duplicate `$(GenerateDocumentationFile)` setting
* nit: Remove useless `$(IsPackable)` settings
- only analyzers and implementation projects are packable by default
- main use case for explicit setting is projects shipping only in shared framework
- conditional setting in src/Mvc/Directory.Build.props just subset logic in /Directory.Build.targets
* nit: Remove useless `$(IsProjectReferenceProvider)` settings
- only implementation projects are providers by default
* nit: Remove useless `$(IsTestAssetProject)` settings
- set in src/Mvc/test/WebSites/Directory.Build.props
* !fixup! Looks like `InProcessNewShimWebSite` must compile w/o ref/ assemblies
- restore `$(CompileUsingReferenceAssemblies)` in this one project
* Make `dotnet msbuild` the default on Windows too
- add step using desktop `msbuild` when native builds may be involved
- `-All` (without `-NoBuildNative`), `-BuildNative` or `-BuildInstallers` run this step
- but `-ForceCoreMsbuild` unconditionally skips this step
nits:
- add binary log for RepoTasks build if `$BinaryLog` (echoes the `dotnet msbuild` command)
- add blank lines between build steps
* Enable building managed projects depending on native assets
- splitting native builds out confuses these projects
- use `$(BuildNative)` less, only to control actual building (not bundling)
- build both native platforms in one `msbuild` invocation
* Adjust generation scripts to explicitly choose the MSBuild engine
- ensure native assets are included in GenerateReferenceAssemblies.ps1 build
- clean up the global state that tools.ps1 corrupts
* Revert move to VS2019.Pre queues
This reverts part of commit b67d161e03
- was "[release/5.0-preview5] Update dependencies from dotnet/aspnetcore-tooling (#21710)"
* Revert "!temporary! Require `msbuild` from VS2019 16.6"
- this reverts commit 58cf2304a6
* Reduce build duplication in pipelines
- build native assets and repo tasks once per CI job
- only cleanup framework references after packing managed projects
nits:
- wrap a few long lines
- remove extra `-forceCoreMsbuild` options in SiteExtensions' build.cmd
* Fix Helix jobs
- restore.cmd doesn't work well with `-projects`; script unconditionally adds `-all`
* !fixup! Reduce duplications further
- missed a couple of places `-noBuildRepoTasks` helps
* Cleanup: Remove a few dangling binary logs
* !fixup! Correct typos in generation scripts
* !fixup! Another typo in the generation scripts
* Update dependencies from https://github.com/dotnet/arcade build 20200511.9
- Microsoft.DotNet.Arcade.Sdk: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9
- Microsoft.DotNet.GenAPI: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9
- Microsoft.DotNet.Helix.Sdk: 5.0.0-beta.20228.4 => 5.0.0-beta.20261.9
* Update dependencies from https://github.com/dotnet/aspnetcore-tooling build 20200514.6
Microsoft.AspNetCore.Mvc.Razor.Extensions , Microsoft.AspNetCore.Razor.Language , Microsoft.CodeAnalysis.Razor , Microsoft.NET.Sdk.Razor
From Version 5.0.0-preview.5.20261.4 -> To Version 5.0.0-preview.6.20264.6
* Pre-emptively take -nobl change
* Disable binlogs in CI
* Fix build.sh to know about -nobl
* Align build.ps1|sh with latest Arcade parameters
- do not enable binary logs by default in CI builds
- leave `-binaryLog` and `-excludeCIBinaryLog` handling to eng/common/tools.ps1|sh
- was unnecessary since `-bl /bl:{some name}` worked fine, ignoring OOMs
nit: document `-excludeCIBinarylog` a bit more
* Do not pass unknown options into CodeCheck.ps1
* Pass `-ci -nobl` into remaining CI build jobs
* Switch default TFM to `net5.0`
* Update missing project templates tfms
* Add more `-ci -nobl`
- needed because _all_ builds in the pipeline are implicitly CI builds
- default-build.yml adds `-ci` when script wasn't explicit
* Default templates to net5.0
* PR feedback
* Update TFMs in explicit .nuspec files
* Update TFMs in test projects
* Update TFMs in test C# code
* Update TFMs in infrastructure files
* Future-proof a check for `net5.0` or later
- avoid comparisons involving `$(TargetFramework)` in .targets files
- fine to compare it with `''` or `$(DefaultNetCoreTargetFramework)`
* !fixup! Undo a couple of earlier fixes
- remove a duplicate `$()` setting
- correct the one remaining versioned `#if` define
- did not make it `#if NETCOREAPP` because benchmarks test numerous .NET Core TFMs
* Disable binary logs in CodeCheck.ps1
* Specify `-ci -nobl` just once when using `parameters.buildArgs`
* Restore `$binaryLog` default logic
Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>
Co-authored-by: Will Godbe <wigodbe@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
* Quick fix: Simplify devBuilds.yml
- remove an excess build step
* Quick fix: Move `SetupNugetSources` script invocations above `parameters.beforeBuild`
- ensure NuGet.config is ready for all internal builds
- remove now-duplicate `SetupNugetSources` invocations wherever default-build.yml is used
* Quick fix: Clean up SiteExtensions/build.cmd
- quote all rooted paths
- check `%ERRORLEVEL%` after every `CALL`
- nits:
- add a few more `ECHO` commands
- wrap long lines
* Quick fix: Ensure `$(BuildNative)` is always set correctly
- fix problems using `-all` or `/p:BuildAllProjects=true` without `-buildNative`
- ensure `$(BuildNative)` is `false` where it's not supported
- move some duplicated settings into eng/Common.props and `<Import />` the new file
- remove now-duplicated parts of conditions using `$(BuildNative)`
* Quick fix: Consistently use `--build-*`
- avoid `/p:Build*` on the command line (except with eng/scripts/ci-source-build.sh)
- nits:
- remove now-useless `-buildNative` with `-all`
- expand and correct a couple of related comments and messages
* Quick fix: Support `-all` together with `-projects`
- remove need to specify `/p:BuildAllProjects=true`
- nit: simplify some Boolean logic
* Always generate checksums as last part of publish job
* Initialize props correctly
* Fix wildcard
* Import Arcade SDK
* Add NoWarn MSB4011
* Make import conditional on GenerateChecksums
* Select specific files to checksum
* Respond to feedback
* AfterTargets -> BeforeTargets