* move package analysis rules to nuget.packaging
* add a empty pack collector logger
* refactor code for warning properties and getnugetlogcodes
* allow warning properties to be read in all code paths
* implement pack collector logger
* convert all package issues to log messages and add warning codes
* add error/warning codes to nuget.exe code path and fix msbuildlogger to handle packlogmessage
* fix dotnet.exe and nuspec codepaths
* fix test failures
* update validate api to use packagearchivereader instead of packagebuilder
* fix unit tests by not doing package analysis
* add tests and a warning fix
Additional sources and fallback folders are added conditionally on TargetFramework, to collect those values the following properties will now be read from the inner build
* RestoreAdditionalProjectSources
* RestoreAdditionalProjectFallbackFolders
* RestoreAdditionalProjectFallbackFoldersExcludes
RestoreAdditionalProjectFallbackFoldersExcludes is a new property added in this change, it will remove values from RestoreAdditionalProjectFallbackFolders.
Fixes https://github.com/NuGet/Home/issues/5596
Merging into the migrated 4.3.0 branch, original changes are from @scottbommarito
Creates a `MetadataReferenceCache` class. It caches references to `string`s and `NuGetVersion`s and can be used to replace duplicate values in our metadata models. The cache only lives for a short amount of time--a single request--so it does not take up significant amounts of memory itself.
Also added a couple fields to particular models.
- `V2FeedPackageInfo` and `PackageSearchMetadataV2Feed` now have `Created` and `LastEdited`, which are exposed in the feed.
- `PackageSearchMetadataRegistration` is a subclass of `PackageSearchMetadata` that contains a `CatalogUri` and is returned by `PackageMetadataResourceV3`.
Merging all test utilities together. Test.Utility is now a common layer that all tests can use that sits between the product projects and test projects.