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.