Moves NuGet to use Xliff tasks. This is a big change:
- Onboard to use the xliff task package instead of lcl, and generate xliff files
- Update projects to use on-the-fly satellite generation
- Remove the old submodule containing the legacy localization info
- Move NuGet to use signtool. This removes a ton of complexity in the signing infrastructure.
Validation done:
- CI validation
- Comparison of old packages to new packages. The VSIX's and localization package have been trimmed of a few satellite dlls that had no interesting content. There were no resx files for these projects. There are slight differences in translations. This occurred when the same un-localization string and resource identifier was localized in different ways. Possibly, there was only a single resource string, but the resource ended up in multiple dlls. The differences are subtle. e.g.:
```
Key: "Manifest_ReferencesHasMixedElements"
Baseline: "<references> ögesi <group> ve <reference> alt ögelerini birlikte içermemelidir."
Diff: "<references> ögesi hem <group> hem de <reference> alt ögesini içermemelidir."
``
---------
Co-authored-by: Christopher Costa <chcosta@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
---------
Co-authored-by: Christopher Costa <chcosta@microsoft.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
- new dll - nuget.packaging.extraction.csproj - mostly linked to the subset of code files from nuget.packaging that needed to pull in for compilation.
- use #if net45 and #else as necessary to provide alternate techniques that work on net45.
- built ireadonlycollectionutility to abstract HashSet not supporting IReadOnlyCollection in net4.5
- built marshalutility to abstract generic way, vs earlier way
- ifdef for empty array creation. new way has perf optimizations to share instances.
- worked around net45 localization problem in common.targets, bootstrap.proj and buildvalidator.ps1 -- follow up for proper fix: NuGet/Client.Engineering#459
strategy for fixes.
* Move xplat libraries to netstandard2.0 and netcoreapp2.1
* Update dotnet cli to 2.2.200
* Remove CandidateAssemnblyFiles from RAR search paths
Microsoft.Build.Runtime package has an mscorlib.dll content file that
ends up winning over mscorlib.dll in .NET Framework targeting pack
mscorlib.dll if CandidateAssemblyFiles are searched.
Legacy project search paths are left unchanaged because they were not
impacted by this and some of the rely on resolution in GAC or
AssemblyFolders.
* Initialize ILMerge with appropriate reference assemblies
Previously, ILMerge was always default-initialized with current machine's
C:\Windows\Microsoft.NET\Framework\v4.0.30319. Furthermore, in the .NET
Standard case, it was mixed with implementation assemblies on /lib from
a one-off CoreCLR implementation. It was pure luck that the resulting
assembly used to work.
This also removes the one-off CLI that carries the one-off CoreCLR from
the build altogether.
* Disabled failing signing tests on macOS
* Remove explicity reference to system.collections.immutable
* Add the ability to insert to multiple CLI/SDK branches
This PR updates the localization validator version to `2.0.1` which is built from this [commit](https://github.com/NuGet/Entropy/commit/2d44f092c59f9b83dc9fb3c22f554cb8c10ce33d). The only changes are newer version to get a repository signed package from nuget.org -
```
PS> nuget verify -signatures C:\Users\anmishr\Desktop\temp\NuGetValidator.2.0.1.nupkg
Verifying NuGetValidator.2.0.1
C:\Users\anmishr\Desktop\temp\NuGetValidator.2.0.1.nupkg
Signature Hash Algorithm: SHA256
Signature type: Repository
nuget-v3-service-index-url: https://api.nuget.org/v3/index.json
nuget-package-owners: mishra14
Verifying the repository primary signature with certificate:
Subject Name: CN=NuGet.org Repository by Microsoft, O=NuGet.org Repository by Microsoft, L=Redmond, S=Washington, C=US
SHA1 hash: 8FB6D7FCF7AD49EB774446EFE778B33365BB7BFB
SHA256 hash: 0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D
Issued by: CN=DigiCert SHA2 Assured ID Code Signing CA, OU=www.digicert.com, O=DigiCert Inc, C=US
Valid from: 4/9/2018 5:00:00 PM to 4/14/2021 5:00:00 AM
Timestamp: 8/10/2018 11:28:11 AM
Verifying repository primary signature's timestamp with timestamping service certificate:
Subject Name: CN=Symantec SHA256 TimeStamping Signer - G2, OU=Symantec Trust Network, O=Symantec Corporation, C=US
SHA1 hash: 625AEC3AE4EDA1D169C4EE909E85B3BBC61076D3
SHA256 hash: CF7AC17AD047ECD5FDC36822031B12D4EF078B6F2B4C5E6BA41F8FF2CF4BAD67
Issued by: CN=Symantec SHA256 TimeStamping CA, OU=Symantec Trust Network, O=Symantec Corporation, C=US
Valid from: 1/1/2017 4:00:00 PM to 4/1/2028 4:59:59 PM
Successfully verified package 'NuGetValidator.2.0.1'.
```
The results are in this [run](https://devdiv.visualstudio.com/DevDiv/DevDiv%20Team/_build?definitionId=8117&_a=summary), same as before.
* format build number with full version
* fix vsix update version
* get semantic version dynamically instead of hardcoding
* fix e2e test scripts to use the new format of buildnumber