diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln
index 018a8b81c2..3733528ebf 100644
--- a/Microsoft.DotNet.Cli.sln
+++ b/Microsoft.DotNet.Cli.sln
@@ -231,6 +231,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-remove-package.Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-add-package.Tests", "test\dotnet-add-package.Tests\dotnet-add-package.Tests.csproj", "{08A40B6A-F695-4EA9-AC8D-CF88FADEA796}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_fsc", "src\tool_fsharp\tool_fsc.csproj", "{602976C5-2477-4B4C-AD9A-1EAFB250529A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
diff --git a/NuGet.Config b/NuGet.Config
index 3fb7835eee..11723f1b5e 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -5,7 +5,9 @@
-
+
+
+
diff --git a/README.md b/README.md
index 4fca8b7f8a..196f42dbbc 100644
--- a/README.md
+++ b/README.md
@@ -23,39 +23,36 @@ This project has adopted the code of conduct defined by the [Contributor Covenan
Build Status
------------
-|Ubuntu 14.04 / Linux Mint 17 |Ubuntu 16.04 | Ubuntu 16.10 |Debian 8 |Windows x64 |Windows x86 |macOS |CentOS 7.1 / Oracle Linux 7.1 |RHEL 7.2 | Linux x64 |
-|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
-|[![][ubuntu-14.04-build-badge]][ubuntu-14.04-build]|[![][ubuntu-16.04-build-badge]][ubuntu-16.04-build]|[![][ubuntu-16.10-build-badge]][ubuntu-16.10-build]|[![][debian-8-build-badge]][debian-8-build]|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][centos-build-badge]][centos-build]|[![][rhel-build-badge]][rhel-build]|[![][linux-build-badge]][linux-build]|
+|Windows x64 |Windows x86 |Mac OS X |Linux x64 |Ubuntu 14.04 / Linux Mint 17 |Ubuntu 16.04 |Ubuntu 16.10 |Debian 8 |RHEL 7.2 |
+|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
+|[![][win-x64-build-badge]][win-x64-build]|[![][win-x86-build-badge]][win-x86-build]|[![][osx-build-badge]][osx-build]|[![][linux-build-badge]][linux-build]|[![][ubuntu-14.04-build-badge]][ubuntu-14.04-build]|[![][ubuntu-16.04-build-badge]][ubuntu-16.04-build]|[![][ubuntu-16.10-build-badge]][ubuntu-16.10-build]|[![][debian-8-build-badge]][debian-8-build]|[![][rhel-build-badge]][rhel-build]|
-[win-x64-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5449/badge
-[win-x64-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5449
+[win-x64-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6902/badge
+[win-x64-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6902
-[win-x86-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5450/badge
-[win-x86-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5450
+[win-x86-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6901/badge
+[win-x86-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6901
-[ubuntu-14.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5447/badge
-[ubuntu-14.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5447
+[osx-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6900/badge
+[osx-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6900
-[ubuntu-16.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5448/badge
-[ubuntu-16.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5448
+[linux-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6899/badge
+[linux-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6899
-[ubuntu-16.10-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5760/badge
-[ubuntu-16.10-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5760
+[ubuntu-14.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6905/badge
+[ubuntu-14.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6905
-[debian-8-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5442/badge
-[debian-8-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5442
+[ubuntu-16.04-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6904/badge
+[ubuntu-16.04-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6904
-[osx-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5445/badge
-[osx-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5445
+[ubuntu-16.10-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6903/badge
+[ubuntu-16.10-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6903
-[centos-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5441/badge
-[centos-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5441
+[debian-8-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6898/badge
+[debian-8-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6898
-[rhel-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5446/badge
-[rhel-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5446
-
-[linux-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/5603/badge
-[linux-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=5603
+[rhel-build-badge]: https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6906/badge
+[rhel-build]: https://devdiv.visualstudio.com/DevDiv/_build?_a=completed&definitionId=6906
Installers and Binaries
-----------------------
@@ -67,26 +64,35 @@ In order to download just the .NET Core runtime without the SDK, please visit ht
> **Note:** please be aware that below installers are the **latest bits**. If you
> want to install the latest released versions, please check out the [section above](#looking-for-v1-of-the-net-core-tooling).
-| Platform | master
[![][version-badge]][version] |
+| Platform | Latest Daily Build
*master*
[![][version-badge]][version] |
| -------- | :-------------------------------------: |
| **Windows x64** | [Installer][win-x64-installer] - [Checksum][win-x64-installer-checksum]
[zip][win-x64-zip] - [Checksum][win-x64-zip-checksum] |
| **Windows x86** | [Installer][win-x86-installer] - [Checksum][win-x86-installer-checksum]
[zip][win-x86-zip] - [Checksum][win-x86-zip-checksum] |
| **Mac OS X** | [Installer][osx-installer] - [Checksum][osx-installer-checksum]
[tar.gz][osx-targz] - [Checksum][osx-targz-checksum] |
| **Linux x64** | [tar.gz][linux-targz] - [Checksum][linux-targz-checksum] |
-| **Ubuntu 14.04 / Linux Mint 17** | [Installer][ubuntu-14.04-installer] - [Checksum][ubuntu-14.04-installer-checksum]
*See Installer Note Below
tar.gz - See **Linux x64** |
-| **Ubuntu 16.04** | [Installer][ubuntu-16.04-installer] - [Checksum][ubuntu-16.04-installer-checksum]
*See Installer Note Below
tar.gz - See **Linux x64** |
-| **Ubuntu 16.10** | [Installer][ubuntu-16.10-installer] - [Checksum][ubuntu-16.10-installer-checksum]
*See Installer Note Below
tar.gz - See **Linux x64** |
-| **Debian 8** | [Installer][debian-8-installer] - [Checksum][debian-8-installer-checksum]
*See Installer Note Below
tar.gz - See **Linux x64** |
+| **Ubuntu 14.04 / Linux Mint 17** | [Installer][ubuntu-14.04-installer] - [Checksum][ubuntu-14.04-installer-checksum]
_see installer note below_1
tar.gz - See **Linux x64** |
+| **Ubuntu 16.04** | [Installer][ubuntu-16.04-installer] - [Checksum][ubuntu-16.04-installer-checksum]
_see installer note below_1
tar.gz - See **Linux x64** |
+| **Ubuntu 16.10** | [Installer][ubuntu-16.10-installer] - [Checksum][ubuntu-16.10-installer-checksum]
_see installer note below_1
tar.gz - See **Linux x64** |
+| **Debian 8** | [Installer][debian-8-installer] - [Checksum][debian-8-installer-checksum]
_see installer note below_1
tar.gz - See **Linux x64** |
+| **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum]
_see installer note below_1
tar.gz - See **Linux x64** |
| **CentOS 7.1 / Oracle Linux 7** | tar.gz - See **Linux x64** |
-| **RHEL 7.2** | [Installer][rhel-7-installer] - [Checksum][rhel-7-installer-checksum]
*See Installer Note Below
tar.gz - See **Linux x64** |
| **Fedora 24** | tar.gz - See **Linux x64** |
| **OpenSUSE 42.1** | tar.gz - See **Linux x64** |
-*Note: Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install the [corresponding Host, Host FX Resolver, and Shared Framework packages](https://github.com/dotnet/core-setup#daily-builds) before installing the Sdk package.*
+
+| Latest Coherent Build2
*release/2.0.0* |
+|:------:|
+| [![][coherent-version-badge]][coherent-version] |
+
+Reference notes:
+> **1**: *Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install the [corresponding Host, Host FX Resolver, and Shared Framework packages](https://github.com/dotnet/core-setup#daily-builds) before installing the Sdk package.*
+>
**2**: *A 'coherent' build is defined as a build where the Runtime version matches between the CLI and Asp.NET.*
[version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.version
+[coherent-version]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/latest.coherent.version
[comment]: # (The latest versions are always the same across all platforms. Just need one to show, so picking win-x64's svg.)
-[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x64_Release_version_badge.svg
+[version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x86_Release_version_badge.svg
+[coherent-version-badge]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/win_x86_Release_coherent_badge.svg
[win-x64-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe
[win-x64-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-win-x64.exe.sha
diff --git a/build/BundledRuntimes.props b/build/BundledRuntimes.props
index 685df5297f..396c9f2df0 100644
--- a/build/BundledRuntimes.props
+++ b/build/BundledRuntimes.props
@@ -31,7 +31,7 @@
- $(CoreSetupBlobRootUrl)aspnetcore/store/$(AspNetCoreRuntimeVersion)
+ $(CoreSetupBlobRootUrl)aspnetcore/store/$(AspNetCoreRuntimeAzureblobStoresSubfolderName)
runtime.version
$(PackagesDirectory)/$(AspNetCoreSharedRuntimeVersionFileName)
@@ -40,8 +40,8 @@
$(HostOSName)
linux
- -$(AspNetCoreCoherenceTimestamp)
- -$(AspNetCoherenceLabel)$(AspNetCoreRuntimeStoreSuffix)
+ -$(AspNetCoreRuntimePackageTimestamp)
+ -$(AspNetCoreRelease)$(AspNetCoreRuntimeStoreSuffix)
Build.RS.$(AspNetCoreRuntimeInstallerArchiveFileNameOSToken)$(AspNetCoreRuntimeInstallerArchiveSuffix)$(ArchiveExtension)
$(PackagesDirectory)/$(AspNetCoreRuntimeInstallerArchiveFileName)
diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props
index 2ecbe6237d..f4233c6c2c 100644
--- a/build/DependencyVersions.props
+++ b/build/DependencyVersions.props
@@ -1,44 +1,49 @@
- 2.0.0-preview3-25428-01
- 15.3.0-preview-000402-01
- 2.3.0-beta3-61816-04
+ 2.0.0
+ 15.3.409
+ 2.3.2-beta1-61921-05
2.3.0-pre-20170624-6
1.6.0-beta2-25304
- 4.2.0-rc-170621-0
+ 4.2.0-rc-170630-0
4.4.1-pre-20170624-6
- 2.0.0-preview3-20170622-1
+ 2.0.0-preview3-20170721-7
$(CLI_NETSDK_Version)
- 4.3.0-preview4-4258
- 2.0.0-preview2-25331-02
+ 4.3.0-rtm-4324
+ 2.0.0-preview3-25514-04
2.0.0-rel-20170629-588
- 15.3.0-preview-20170628-02
+ 15.3.0-preview-20170703-02
$(CLI_SharedFrameworkVersion)
$(CLI_SharedFrameworkVersion)
$(CLI_SharedFrameworkVersion)
- 1.0.0-beta2-20170629-268
- 1.0.0-beta2-20170629-268
- 1.0.0-beta2-20170629-268
- 2.0.0-preview3-25428-01
- 2.0.0-preview3-25428-01
+ 1.0.0-beta2-20170719-291
+ 1.0.0-beta2-20170725-300
+ 1.0.0-beta2-20170725-300
+ 2.0.0
+ 2.0.0
0.1.1-alpha-167
1.2.1-alpha-002133
0.2.0
- 1.0.0-preview-000321
+ 1.0.0-preview-000409
0.2.0-beta-000042
- timestamped
- dev-224
- preview3
- 25975
+ notimestamp
+
+ 2.0.0
+ rtm
+ 2.0.0
+ 26452
+ aspnetcore-store
+ $(AspNetCoreVersion)-$(AspNetCoreRelease)
+ $(AspNetCoreBranchName)-$(AspNetCoreRuntimePackageTimestamp)
diff --git a/build/Publish.targets b/build/Publish.targets
index d38175d64b..2fb5138380 100644
--- a/build/Publish.targets
+++ b/build/Publish.targets
@@ -5,24 +5,27 @@
-
+
+
+ DependsOnTargets="GenerateVersionBadge;
+ GenerateCoherentBadge;
+ GatherItemsForPattern;
+ GenerateChecksums;
+ UploadArtifactsToAzure;
+ UploadChecksumsToAzure;
+ PublishDebFilesToDebianRepo;
+ PublishCliVersionBadge" />
@@ -44,6 +47,8 @@
+
diff --git a/build/Version.props b/build/Version.props
index 87443ab398..8285a0d26d 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -3,7 +3,7 @@
2
1
0
- preview1
+ preview1
$(VersionMajor).$(VersionMinor).$(VersionPatch)-$(ReleaseSuffix)
$(VersionMajor).$(VersionMinor).$(VersionPatch).$(CommitCount)
diff --git a/build/VersionBadge.props b/build/VersionBadge.props
index e7ae9aacca..0dab52fb88 100644
--- a/build/VersionBadge.props
+++ b/build/VersionBadge.props
@@ -8,6 +8,7 @@
ubuntu_16_10_x64
linux_x64
- $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg
+ $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_version_badge.svg
+ $(BaseOutputDirectory)/$(VersionBadgeMoniker)_$(Configuration)_coherent_badge.svg
diff --git a/build/buildpipeline/security/DotNet-CLI-Security-Windows.json b/build/buildpipeline/security/DotNet-CLI-Security-Windows.json
new file mode 100644
index 0000000000..7b1edd40a9
--- /dev/null
+++ b/build/buildpipeline/security/DotNet-CLI-Security-Windows.json
@@ -0,0 +1,719 @@
+{
+ "build": [
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Clone Core-Setup",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "$(PB_Git)",
+ "arguments": "clone $(CoreSetupUrl) core-setup",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Checkout Core-Setup master",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "$(PB_Git)",
+ "arguments": "checkout master",
+ "workingFolder": "$(build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Run init-tools.cmd",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "init-tools.cmd",
+ "arguments": "",
+ "workingFolder": "$(Build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Workaround for BuildTools - Delete CLI dir.props",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-path \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param ($path)\ngci \"$path\\dir.props\" | Remove-Item -Force",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Download blobs from container $(PB_CloudDropAccountName)",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "c6c4c611-aa2e-4a33-b606-5eaba2196824",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "solution": "$(Build.SourcesDirectory)\\build\\buildpipeline\\security\\syncAzure.proj",
+ "msbuildLocationMethod": "version",
+ "msbuildVersion": "latest",
+ "msbuildArchitecture": "x64",
+ "msbuildLocation": "",
+ "platform": "x64",
+ "configuration": "$(BuildConfiguration)",
+ "msbuildArguments": "/p:AzureAccount=\"$(PB_CloudDropAccountName)\" /p:AzureToken=\"$(PB_CloudDropAccessToken)\" /p:BlobName=\"$(PB_BlobNameFilter)\" /verbosity:diag",
+ "clean": "false",
+ "maximumCpuCount": "false",
+ "restoreNugetPackages": "false",
+ "logProjectEvents": "false",
+ "createLogFile": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Copy downloaded packages to security folder",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell_23",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\n$pkgDir = \"$SrcDir\\core-setup\\packages\\AzureTransfer\"\nCopy-Item \"$pkgDir \" \"$secDir\" -Force -Recurse\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Extract downloaded packages",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\ngci \"$secDir\\*.zip\" | % {\n$dstDir = Join-Path \"$secDir\" $($_.BaseName)\nExpand-Archive -Path $($_.FullName) -DestinationPath \"$dstDir\" -Force\nWrite-Host \"Expanded: $($_.FullName)\"\nRemove-Item $_.FullName -Force\n}\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "environment": {},
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Remove non-CLI folders",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "PowerShell_22",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$secDir = Join-Path \"$SrcDir\" \"security\"\n\ngci \"$secDir\" | where {$_.PSIsContainer} | % {\n gci $_.FullName | where {$_.PSIsContainer} | % {\n if ($_.BaseName -ine \"sdk\" -and $_.BaseName -notmatch \"symbols\")\n {\n Remove-Item $_.FullName -Recurse -Force -ErrorAction Continue\n Write-Host \"Removed $($_.FullName)\"\n }\n }\n}",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": false,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Workaround for long path - DELETE files with path length greater than or equal to 240 characters",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "Task_10",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$longPath = New-Object System.Collections.ArrayList\ngci \"$SrcDir\\*\" -recurse | where {!$_.PSIsContainer} | % {\nif ($($_.FullName.Length) -ge 240)\n{\n$longPath.Add($($_.Directory.FullName)) | Out-Null\n}\n}\n$longPath | % {\nStart-Process \"cmd\" -ArgumentList \"/c rd /S /Q $_\" -Wait\nWrite-Host \"DELETED $_\"\n}\n",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files - post delete",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "refName": "Task_11",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run BinSkim ",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "3056813a-40e9-4b2f-8f6b-612d1bc4e045",
+ "versionSpec": "3.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "InputType": "CommandLine",
+ "arguments": "analyze $(Build.SourcesDirectory)\\security\\*.dll $(Build.SourcesDirectory)\\security\\*.exe --recurse --sympath $(Build.SourcesDirectory)\\security\\*.pdb --verbose --statistics",
+ "Function": "analyze",
+ "AnalyzeTarget": "$(Build.ArtifactStagingDirectory)",
+ "AnalyzeSymPath": "",
+ "AnalyzeConfigPath": "default",
+ "AnalyzePluginPath": "",
+ "AnalyzeRecurse": "true",
+ "AnalyzeVerbose": "true",
+ "AnalyzeHashes": "true",
+ "AnalyzeStatistics": "false",
+ "AnalyzeEnvironment": "false",
+ "ExportRulesOutputType": "SARIF",
+ "DumpTarget": "$(Build.ArtifactStagingDirectory)",
+ "DumpRecurse": "true",
+ "DumpVerbose": "true",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run APIScan",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "9adea2b1-3752-438c-80c6-a6f0a812abdd",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "targetMode": "binarysym",
+ "softwareFolder": "$(Build.SourcesDirectory)\\security",
+ "mpdFolder": "",
+ "softwareName": "CLI",
+ "softwareVersionNum": "$(PB_BuildNumber)",
+ "softwareBuildNum": "$(PB_BuildNumber)",
+ "modeType": "prerelease",
+ "noCopySymbols": "false",
+ "noCopyBinaries": "false",
+ "noDecompress": "true",
+ "exclusionList": "",
+ "email": "",
+ "symbolsFolder": "$(Build.SourcesDirectory)\\security",
+ "preBbtBinariesFolder": "",
+ "preBbtSymbolsFolder": "",
+ "isLargeApp": "false",
+ "analyzerTimeout": "00:00:00",
+ "preserveTempFiles": "false",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": false,
+ "alwaysRun": false,
+ "displayName": "Checkout CLI at SHA listed in latest.version",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-SrcDir \"$(Build.SourcesDirectory)\" -git \"$(PB_Git)\"",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir, $git)\n$secDir = Join-Path \"$SrcDir\" \"security\"\n$shaFile= Join-Path \"$secDir\" \"latest.version\"\n$sha = gc \"$shaFile\" -first 1\n\nif ([string]::IsNullOrWhiteSpace($sha))\n{ Write-Error \"Unable to determine latest commit SHA.\" }\n\nStart-Process \"$git\" -ArgumentList \"clean -df\" -Wait -Verbose -ErrorAction Stop\nStart-Process \"$git\" -ArgumentList \"checkout $sha\" -Wait -Verbose -ErrorAction Stop\nWrite-Host \"Checked out at $sha\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run Core-Setup clean.cmd",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "filename": "clean.cmd",
+ "arguments": "-all",
+ "workingFolder": "$(Build.SourcesDirectory)\\core-setup",
+ "failOnStandardError": "false"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Delete Core-Setup folder",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "-path \"$(Build.SourcesDirectory)\\core-setup\"",
+ "workingFolder": "",
+ "inlineScript": "param ($path)\nRemove-Item \"$path\" -Force -Recurse -ErrorAction Continue\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "List all files - post checkout",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "scriptType": "inlineScript",
+ "scriptName": "",
+ "arguments": "$(Build.SourcesDirectory)",
+ "workingFolder": "$(Build.SourcesDirectory)",
+ "inlineScript": "param($SrcDir)\n$fileCount = 0\ngci $SrcDir -recurse | % {\nWrite-Host $($_.FullName)\n$fileCount += 1\n}\nWrite-Host \"File Count: $fileCount\"\n",
+ "failOnStandardError": "true"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run CredScan",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "ea576cd4-c61f-48f8-97e7-a3cb07b90a6f",
+ "versionSpec": "2.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "outputFormat": "pre",
+ "toolVersion": "Latest",
+ "scanFolder": "$(Build.SourcesDirectory)",
+ "searchersFileType": "Default",
+ "searchersFile": "",
+ "suppressionsFile": "",
+ "suppressAsError": "false",
+ "batchSize": ""
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Run PoliCheck",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "d785890c-0d0d-46bd-8167-8fa9d49990c7",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "inputType": "Basic",
+ "cmdLineArgs": "/F:$(Build.SourcesDirectory) /T:9 /O:PoliCheck.xml",
+ "targetType": "F",
+ "targetArgument": "$(Build.SourcesDirectory)",
+ "importEx": "0",
+ "termTypeT": "0029a9",
+ "termTypeTCustom": "9",
+ "termTypeK": "",
+ "termTypeL": "",
+ "EXGT": "false",
+ "result": "PoliCheck.xml",
+ "optionsFC": "1",
+ "optionsXS": "1",
+ "optionsCTGLEN": "",
+ "optionsSEV": "",
+ "optionsPE": "",
+ "optionsHMENABLE": "",
+ "optionsHPATH": "",
+ "optionsHVER": "",
+ "optionsRulesDBPath": "",
+ "optionsRule": "",
+ "optionsXCLASS": "",
+ "optionsTASKNAME": "",
+ "optionsWORKINGDIRECTORY": "",
+ "optionsFTPATH": "",
+ "optionsD": "",
+ "optionsB1": "",
+ "optionsB2": "",
+ "optionsB3": "",
+ "optionsOCDB": "",
+ "toolVersion": "Latest"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Post Analysis",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "f5679091-e6da-4974-a8dc-0eec03a8ea63",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "APIScan": "true",
+ "BinScope": "false",
+ "BinSkim": "true",
+ "BinSkimBreakOn": "Error",
+ "CredScan": "true",
+ "FortifySCA": "false",
+ "FxCop": "false",
+ "FxCopBreakOn": "ErrorAbove",
+ "ModernCop": "false",
+ "ModernCopBreakOn": "Error",
+ "PoliCheck": "true",
+ "PoliCheckBreakOn": "Severity1",
+ "SDLNativeRules": "false",
+ "TSLint": "false",
+ "TSLintBreakOn": "Error"
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "Publish Security Analysis Logs",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "4096c760-3a8a-435d-9689-88c0311bbc0e",
+ "versionSpec": "2.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "ArtifactName": "CodeAnalysisLogs",
+ "ArtifactType": "Container",
+ "TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
+ "RvName": "",
+ "ProductComponentName": "",
+ "ProductVersionNumber": "",
+ "PlatformName": "",
+ "SDLToolName": "",
+ "SDLToolResultFile": ""
+ }
+ },
+ {
+ "enabled": true,
+ "continueOnError": true,
+ "alwaysRun": false,
+ "displayName": "TSA upload to Codebase: DotNet-CLI-Trusted_$(CodeBase) Stamp: Azure",
+ "timeoutInMinutes": 0,
+ "condition": "succeeded()",
+ "task": {
+ "id": "3da26988-bb64-4a23-8f06-45531d297dae",
+ "versionSpec": "1.*",
+ "definitionType": "task"
+ },
+ "inputs": {
+ "codebase": "NewOrUpdate",
+ "tsaStamp": "Azure",
+ "tsaWebApiUrl": "$(TSAStamp)",
+ "codeBaseName": "DotNet-CLI-Trusted_$(CodeBase)",
+ "notificationAlias": "$(NotificationAlias)",
+ "codeBaseAdmins": "NORTHAMERICA\\raeda",
+ "instanceUrlAzure": "MSAZURE",
+ "instanceUrlBing": "",
+ "instanceUrlCarbon": "",
+ "instanceUrlDevDiv": "DEVDIV",
+ "instanceUrlSkype": "",
+ "instanceUrlTsa": "",
+ "instanceUrlPpe": "",
+ "projectNameDAIPVSTF": "",
+ "projectNameDYNAMICSCRM": "",
+ "projectNameMSAZURE": "One",
+ "projectNameMSDYENG": "",
+ "projectNameMSECG": "",
+ "projectNameIDENTITYDIVISION": "Code Scan - TSA",
+ "projectNameVSTFRD": "",
+ "projectNameMSASG": "",
+ "projectNameMICROSOFTVSTS": "",
+ "projectNameMSDATA": "",
+ "projectNameMSENG": "",
+ "projectNameDEVDIV": "DevDiv",
+ "projectNameSKYPETEST2": "",
+ "projectNameONEDRIVE": "",
+ "projectNameSQLBUVSTS": "",
+ "projectNamePOWERBI": "",
+ "projectNameAZUREVSTFPPE": "",
+ "projectNameSKYPE": "",
+ "projectNameDOMOREEXP": "",
+ "projectNameSQLBUVSTSTEST": "",
+ "areaPath": "One\\DevDiv\\DotNetCore",
+ "iterationPath": "One",
+ "uploadAPIScan": "true",
+ "uploadBinScope": "false",
+ "uploadBinSkim": "true",
+ "uploadCredScan": "true",
+ "uploadFortifySCA": "false",
+ "uploadFxCop": "false",
+ "uploadModernCop": "false",
+ "uploadPoliCheck": "true",
+ "uploadPREfast": "false",
+ "validateToolOutput": "Warning",
+ "validateCompatibility": "Error",
+ "uploadAsync": "true"
+ }
+ }
+ ],
+ "options": [
+ {
+ "enabled": false,
+ "definition": {
+ "id": "5bc3cfb7-6b54-4a4b-b5d2-a3905949f8a6"
+ },
+ "inputs": {}
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "7c555368-ca64-4199-add6-9ebaf0b0137d"
+ },
+ "inputs": {
+ "multipliers": "[]",
+ "parallel": "false",
+ "continueOnError": "true",
+ "additionalFields": "{}"
+ }
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "a9db38f9-9fdc-478c-b0f9-464221e58316"
+ },
+ "inputs": {
+ "workItemType": "234347",
+ "assignToRequestor": "true",
+ "additionalFields": "{}"
+ }
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "57578776-4c22-4526-aeb0-86b6da17ee9c"
+ },
+ "inputs": {}
+ },
+ {
+ "enabled": false,
+ "definition": {
+ "id": "5d58cc01-7c75-450c-be18-a388ddb129ec"
+ },
+ "inputs": {
+ "branchFilters": "[\"+refs/heads/*\"]",
+ "additionalFields": "{}"
+ }
+ }
+ ],
+ "variables": {
+ "system.debug": {
+ "value": "false"
+ }
+ },
+ "demands": [
+ "Agent.OS -equals windows_nt",
+ "msbuild"
+ ],
+ "retentionRules": [
+ {
+ "branches": [
+ "+refs/heads/*"
+ ],
+ "artifacts": [
+ "build.SourceLabel"
+ ],
+ "artifactTypesToDelete": [],
+ "daysToKeep": 10,
+ "minimumToKeep": 1,
+ "deleteBuildRecord": true,
+ "deleteTestResults": true
+ }
+ ],
+ "_links": {
+ "self": {
+ "href": "https://devdiv.visualstudio.com/0bdbc590-a062-4c3f-b0f6-9383f67865ee/_apis/build/Definitions/6661"
+ },
+ "web": {
+ "href": "https://devdiv.visualstudio.com/_permalink/_build/index?collectionId=011b8bdf-6d56-4f87-be0d-0092136884d9&projectId=0bdbc590-a062-4c3f-b0f6-9383f67865ee&definitionId=6661"
+ },
+ "editor": {
+ "href": "https://devdiv.visualstudio.com/_permalink/_build/definitionEditor?collectionId=011b8bdf-6d56-4f87-be0d-0092136884d9&projectId=0bdbc590-a062-4c3f-b0f6-9383f67865ee&definitionId=6661"
+ },
+ "badge": {
+ "href": "https://devdiv.visualstudio.com/_apis/public/build/definitions/0bdbc590-a062-4c3f-b0f6-9383f67865ee/6661/badge"
+ }
+ },
+ "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)",
+ "jobAuthorizationScope": 1,
+ "jobTimeoutInMinutes": 600,
+ "jobCancelTimeoutInMinutes": 5,
+ "badgeEnabled": true,
+ "repository": {
+ "properties": {
+ "cleanOptions": "3",
+ "labelSources": "0",
+ "labelSourcesFormat": "$(build.buildNumber)",
+ "reportBuildStatus": "true",
+ "gitLfsSupport": "false",
+ "skipSyncSource": "false",
+ "checkoutNestedSubmodules": "false",
+ "fetchDepth": "0"
+ },
+ "id": "ceac4423-53f8-4c97-bc62-173630412581",
+ "type": "TfsGit",
+ "name": "DotNet-Cli-Trusted",
+ "url": "https://devdiv.visualstudio.com/DevDiv/_git/DotNet-Cli-Trusted",
+ "defaultBranch": "refs/heads/master",
+ "clean": "true",
+ "checkoutSubmodules": false
+ },
+ "processParameters": {},
+ "quality": "definition",
+ "authoredBy": {
+ "id": "9d5fdf9f-36b6-4d0c-a12e-2737a673af94",
+ "displayName": "Ravi Eda",
+ "uniqueName": "raeda@microsoft.com",
+ "url": "https://app.vssps.visualstudio.com/Aa44b2c06-f247-425c-8464-4a0676af910a/_apis/Identities/9d5fdf9f-36b6-4d0c-a12e-2737a673af94",
+ "imageUrl": "https://devdiv.visualstudio.com/_api/_common/identityImage?id=9d5fdf9f-36b6-4d0c-a12e-2737a673af94"
+ },
+ "queue": {
+ "id": 36,
+ "name": "DotNet-Build",
+ "pool": {
+ "id": 39,
+ "name": "DotNet-Build"
+ }
+ },
+ "id": 6733,
+ "name": "DotNet-CLI-Security-Windows",
+ "url": "https://devdiv.visualstudio.com/0bdbc590-a062-4c3f-b0f6-9383f67865ee/_apis/build/Definitions/6661",
+ "uri": "vstfs:///Build/Definition/6733",
+ "path": "\\",
+ "type": 2,
+ "revision": 6,
+ "createdDate": "2017-06-21T21:58:12.397Z",
+ "project": {
+ "id": "0bdbc590-a062-4c3f-b0f6-9383f67865ee",
+ "name": "DevDiv",
+ "description": "Visual Studio and DevDiv team project for git source code repositories. Work items will be added for Adams, Dev14 work items are tracked in vstfdevdiv. ",
+ "url": "https://devdiv.visualstudio.com/_apis/projects/0bdbc590-a062-4c3f-b0f6-9383f67865ee",
+ "state": "wellFormed",
+ "revision": 418097676,
+ "visibility": 0
+ }
+}
diff --git a/build/buildpipeline/security/dir.props b/build/buildpipeline/security/dir.props
new file mode 100644
index 0000000000..3e28b4a52a
--- /dev/null
+++ b/build/buildpipeline/security/dir.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/build/buildpipeline/security/pipeline.json b/build/buildpipeline/security/pipeline.json
new file mode 100644
index 0000000000..dbac3626b0
--- /dev/null
+++ b/build/buildpipeline/security/pipeline.json
@@ -0,0 +1,22 @@
+{
+ "Repository": "cli",
+ "Definitions": {
+ "Path": ".",
+ "Type": "VSTS",
+ "BaseUrl": "https://devdiv.visualstudio.com/DefaultCollection",
+ "SkipBranchAndVersionOverrides": "false"
+ },
+ "Pipelines": [
+ {
+ "Name": "Security Build for Windows",
+ "Parameters": {
+ "TreatWarningsAsErrors": "false"
+ },
+ "Definitions": [
+ {
+ "Name": "DotNet-CLI-Security-Windows"
+ }
+ ]
+ }
+ ]
+}
diff --git a/build/buildpipeline/security/syncAzure.proj b/build/buildpipeline/security/syncAzure.proj
new file mode 100644
index 0000000000..45d7657ebd
--- /dev/null
+++ b/build/buildpipeline/security/syncAzure.proj
@@ -0,0 +1,21 @@
+
+
+
+
+
+ $(BuildToolsTaskDesktopDir)Microsoft.DotNet.Build.CloudTestTasks.dll
+ dotnet
+ $(PackagesDir)AzureTransfer
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/buildpipeline/security/syncAzure.targets b/build/buildpipeline/security/syncAzure.targets
new file mode 100644
index 0000000000..4cc360a11c
--- /dev/null
+++ b/build/buildpipeline/security/syncAzure.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ $(PackagesDir)/AzureTransfer
+
+
+
+
+
+
+
+
+ <_OSFilteredBlobNames Include="@(_BlobList)"
+ Condition="'$(OSGroup)' == 'Windows_NT' AND
+ ('%(_BlobList.Extension)' == '.zip' OR '%(_BlobList.Extension)' == '.exe' OR '%(_BlobList.Extension)' == '.version')" />
+
+
+
+
+
diff --git a/build/package/Installer.DEB.proj b/build/package/Installer.DEB.proj
index 2c917db52d..51efaca628 100644
--- a/build/package/Installer.DEB.proj
+++ b/build/package/Installer.DEB.proj
@@ -16,7 +16,8 @@
@@ -24,6 +25,7 @@
+
-
-
-
+
@@ -110,6 +105,7 @@
+
@@ -123,6 +119,7 @@
+
diff --git a/build/package/Installer.DEB.targets b/build/package/Installer.DEB.targets
index c67895054d..879be4b8a4 100644
--- a/build/package/Installer.DEB.targets
+++ b/build/package/Installer.DEB.targets
@@ -35,6 +35,10 @@
dotnet-hostfxr-$(HostFxrDebianPackageVersion)
$(HostFxrDebianPackageName.ToLower())
dotnet-host
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)
+ $(HostRid)
+ debian-x64
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)-$(HostRidInAspNetCoreRuntimeDebInstallerFileName).deb
@@ -83,6 +87,9 @@
$(SharedFxDebianPackageName)
+
+ $(AspNetCoreRuntimePackageName)
+
,
@@ -107,4 +114,14 @@
+
+
+
+ $(PackagesDirectory)/$(AspNetCoreRuntimeDebInstallerFileName)
+
+
+
diff --git a/build/package/Installer.RPM.targets b/build/package/Installer.RPM.targets
index e64e73ce4a..13818cd919 100644
--- a/build/package/Installer.RPM.targets
+++ b/build/package/Installer.RPM.targets
@@ -50,6 +50,11 @@
dotnet-hostfxr-$(HostFxrRpmPackageVersion)
$(HostFxrRpmPackageName.ToLower())
dotnet-host
+ $(HostRid)
+ rhel-x64
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)
+ $(AspNetCoreVersion)-$(AspNetCoreRelease)-$(AspNetCoreRuntimePackageTimestamp)
+ $(AspNetCoreRuntimePackageBrandName)-$(AspNetCoreVersionAndRelease)-$(AspNetCoreRuntimePackageTimestamp)-$(HostRidInAspNetCoreRuntimeRpmInstallerFileName).rpm
@@ -74,7 +79,6 @@
-
-
-
$(SharedFrameworkVersion)
+
+ $(AspNetCoreRuntimePackageName)
+
+
+ $(AspNetCoreRuntimePackageVersion)
+
$(SharedFxRpmPackageName)
@@ -162,6 +166,16 @@
+
+
+ $(PackagesDirectory)/$(AspNetCoreRuntimeRpmInstallerFileName)
+
+
+
+
@@ -182,11 +196,12 @@
@@ -194,6 +209,7 @@
+
@@ -207,6 +223,8 @@
+
+
diff --git a/build/package/Nupkg.targets b/build/package/Nupkg.targets
index e3eb97faf4..9158c2143d 100644
--- a/build/package/Nupkg.targets
+++ b/build/package/Nupkg.targets
@@ -11,6 +11,10 @@
Microsoft.DotNet.Cli.Utils
$(SdkNugetVersion)
+
+ Microsoft.DotNet.MSBuildSdkResolver
+ $(SdkNugetVersion)
+
diff --git a/build/publish/Badge.targets b/build/publish/Badge.targets
index 7c87a7ac6c..d80313c199 100644
--- a/build/publish/Badge.targets
+++ b/build/publish/Badge.targets
@@ -14,4 +14,16 @@
ReplacementPatterns="ver_number"
ReplacementStrings="$(SdkVersion)" />
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/publish/FinishBuild.targets b/build/publish/FinishBuild.targets
index 69a9170ae9..8ffbe0097d 100644
--- a/build/publish/FinishBuild.targets
+++ b/build/publish/FinishBuild.targets
@@ -2,7 +2,6 @@
@@ -14,27 +13,6 @@
-
-
-
- false
- true
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/publish/PublishDebian.targets b/build/publish/PublishDebian.targets
index 08767a3ce3..43ab5abdac 100644
--- a/build/publish/PublishDebian.targets
+++ b/build/publish/PublishDebian.targets
@@ -19,7 +19,7 @@
-
+
diff --git a/build/publish/RuntimeCoherence.targets b/build/publish/RuntimeCoherence.targets
new file mode 100644
index 0000000000..5ba7482bfe
--- /dev/null
+++ b/build/publish/RuntimeCoherence.targets
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
diff --git a/build_projects/dotnet-cli-build/EnvironmentVariableFilter.cs b/build_projects/dotnet-cli-build/EnvironmentVariableFilter.cs
index 432f303863..6071d07659 100644
--- a/build_projects/dotnet-cli-build/EnvironmentVariableFilter.cs
+++ b/build_projects/dotnet-cli-build/EnvironmentVariableFilter.cs
@@ -28,6 +28,7 @@ public class EnvironmentFilter
private IEnumerable _environmentVariablesToKeep = new string []
{
"DOTNET_CLI_TELEMETRY_SESSIONID",
+ "DOTNET_CLI_UI_LANGUAGE",
"DOTNET_MULTILEVEL_LOOKUP",
"DOTNET_RUNTIME_ID",
"DOTNET_SKIP_FIRST_TIME_EXPERIENCE",
diff --git a/build_projects/dotnet-cli-build/GenerateNuGetPackagesArchiveVersion.cs b/build_projects/dotnet-cli-build/GenerateNuGetPackagesArchiveVersion.cs
index 75bcf02321..4ba8fb393e 100644
--- a/build_projects/dotnet-cli-build/GenerateNuGetPackagesArchiveVersion.cs
+++ b/build_projects/dotnet-cli-build/GenerateNuGetPackagesArchiveVersion.cs
@@ -47,7 +47,7 @@ public override bool Execute()
{
ToolPath = ToolPath,
TemplateType = newArgs[0],
- TemplateArgs = newArgs[1] + $" --debug:ephemeral-hive -n TempProject -o \"{outputDir}\"",
+ TemplateArgs = newArgs[1] + $" --debug:ephemeral-hive -n TempProject -o \"{outputDir}\" --no-restore",
HostObject = HostObject,
BuildEngine = BuildEngine
};
diff --git a/packaging/deb/dotnet-debian_config.json b/packaging/deb/dotnet-debian_config.json
index 86adb7537c..4d813f3fda 100644
--- a/packaging/deb/dotnet-debian_config.json
+++ b/packaging/deb/dotnet-debian_config.json
@@ -29,6 +29,7 @@
},
"debian_dependencies":{
- "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%" : {}%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%
+ "%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%" : {}%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%,
+ "%ASPNETCOREPACKAGESTORE_DEBIAN_PACKAGE_NAME%": {}
}
}
diff --git a/packaging/deb/postinst b/packaging/deb/postinst
index cf3769c9e1..e5ca8ee435 100755
--- a/packaging/deb/postinst
+++ b/packaging/deb/postinst
@@ -19,4 +19,4 @@ Installation Note
--------------
A command will be run during the install process that will improve project restore speed and enable offline access. It will take up to a minute to complete."
-dotnet new > /dev/null 2>&1 || true
+dotnet internal-reportinstallsuccess "debianpackage" > /dev/null 2>&1 || true
diff --git a/packaging/osx/clisdk/scripts/postinstall b/packaging/osx/clisdk/scripts/postinstall
index 4d69748e9a..1ec0bf6fac 100755
--- a/packaging/osx/clisdk/scripts/postinstall
+++ b/packaging/osx/clisdk/scripts/postinstall
@@ -11,7 +11,6 @@ INSTALL_DESTINATION=$2
# A temporary fix for the permissions issue(s)
chmod -R 755 $INSTALL_DESTINATION
-# Run 'dotnet new' to trigger the first time experience to initialize the cache
-$INSTALL_DESTINATION/dotnet new > /dev/null 2>&1 || true
+$INSTALL_DESTINATION/dotnet internal-reportinstallsuccess "$1" > /dev/null 2>&1 || true
exit 0
diff --git a/packaging/rpm/dotnet-config.json b/packaging/rpm/dotnet-config.json
index 6ed9d53ad2..38f533bcb2 100644
--- a/packaging/rpm/dotnet-config.json
+++ b/packaging/rpm/dotnet-config.json
@@ -25,14 +25,16 @@
{
"package_name": "%SHARED_HOST_RPM_NAME%",
"package_version": "%SHARED_HOST_RPM_VERSION%"
+ },
+ {
+ "package_name": "%ASPNETCOREPACKAGESTORE_RPM_PACKAGE_NAME%",
+ "package_version": "%ASPNETCOREPACKAGESTORE_RPM_PACKAGE_VERSION%"
}
],
"directories": [
"/usr/share/dotnet/sdk",
- "/usr/share/dotnet/store",
- "/usr/share/dotnet/additionalDeps",
"/usr/share/doc/%SDK_RPM_PACKAGE_NAME%"
],
"after_install_source": "scripts/after_install_host.sh",
"after_remove_source": "scripts/after_remove_host.sh"
-}
\ No newline at end of file
+}
diff --git a/packaging/rpm/scripts/after_install_host.sh b/packaging/rpm/scripts/after_install_host.sh
index b0b121425b..72980c801b 100644
--- a/packaging/rpm/scripts/after_install_host.sh
+++ b/packaging/rpm/scripts/after_install_host.sh
@@ -23,4 +23,4 @@ Installation Note
--------------
A command will be run during the install process that will improve project restore speed and enable offline access. It will take up to a minute to complete."
-dotnet new > /dev/null 2>&1 || true
+dotnet internal-reportinstallsuccess "rpmpackage" > /dev/null 2>&1 || true
diff --git a/packaging/windows/clisdk/bundle.wxs b/packaging/windows/clisdk/bundle.wxs
index d1de0ef58e..4f379ca3e5 100644
--- a/packaging/windows/clisdk/bundle.wxs
+++ b/packaging/windows/clisdk/bundle.wxs
@@ -37,6 +37,7 @@
+
diff --git a/packaging/windows/clisdk/dotnet.wxs b/packaging/windows/clisdk/dotnet.wxs
index 976bf5a554..315b801e5b 100644
--- a/packaging/windows/clisdk/dotnet.wxs
+++ b/packaging/windows/clisdk/dotnet.wxs
@@ -30,12 +30,20 @@
-
-
+
+
-
-
+
+
diff --git a/packaging/windows/msbuildextensions/generatemsi.ps1 b/packaging/windows/msbuildextensions/generatemsi.ps1
index 84ca7462e0..a7444058d0 100644
--- a/packaging/windows/msbuildextensions/generatemsi.ps1
+++ b/packaging/windows/msbuildextensions/generatemsi.ps1
@@ -16,8 +16,8 @@ param(
. "$PSScriptRoot\..\..\..\scripts\common\_common.ps1"
$RepoRoot = Convert-Path "$PSScriptRoot\..\..\.."
-$InstallFileswsx = "install-files.wxs"
-$InstallFilesWixobj = "install-files.wixobj"
+$InstallFileswsx = "install-msbuild-extensions-files.wxs"
+$InstallFilesWixobj = "install-msbuild-extensions-files.wixobj"
function RunHeat
{
diff --git a/packaging/windows/msbuildextensions/msbuildextensions.wxs b/packaging/windows/msbuildextensions/msbuildextensions.wxs
index 9cfa987fac..be689ea3ff 100644
--- a/packaging/windows/msbuildextensions/msbuildextensions.wxs
+++ b/packaging/windows/msbuildextensions/msbuildextensions.wxs
@@ -6,7 +6,7 @@
-
+
diff --git a/run-build.ps1 b/run-build.ps1
index df4b89d742..137c93d650 100644
--- a/run-build.ps1
+++ b/run-build.ps1
@@ -80,9 +80,8 @@ $env:VSTEST_TRACE_BUILD=1
# install a stage0
$dotnetInstallPath = Join-Path $RepoRoot "scripts\obtain\dotnet-install.ps1"
-Write-Output "$dotnetInstallPath -Channel ""release/2.0.0"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"" -Version 2.0.0-preview3-006628"
-Invoke-Expression "$dotnetInstallPath -Channel ""release/2.0.0"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"" -Version 2.0.0-preview3-006628"
-
+Write-Output "$dotnetInstallPath -Channel ""master"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
+Invoke-Expression "$dotnetInstallPath -Channel ""master"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
if ($LastExitCode -ne 0)
{
Write-Output "The .NET CLI installation failed with exit code $LastExitCode"
diff --git a/run-build.sh b/run-build.sh
index 93d9820c09..547c304444 100755
--- a/run-build.sh
+++ b/run-build.sh
@@ -155,7 +155,7 @@ export VSTEST_TRACE_BUILD=1
export DOTNET_MULTILEVEL_LOOKUP=0
# Install a stage 0
-(set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --channel "release/2.0.0" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" --version "2.0.0-preview3-006628" $LINUX_PORTABLE_INSTALL_ARGS)
+(set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --channel "master" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
EXIT_CODE=$?
if [ $EXIT_CODE != 0 ]; then
diff --git a/scripts/docker/fedora.23/Dockerfile b/scripts/docker/fedora.23/Dockerfile
index 0c4b20d792..b8508bde7f 100644
--- a/scripts/docker/fedora.23/Dockerfile
+++ b/scripts/docker/fedora.23/Dockerfile
@@ -4,36 +4,10 @@
#
# Dockerfile that creates a container suitable to build dotnet-cli
-FROM fedora:23
-
-# Install the base toolchain we need to build anything (clang, cmake, make and the like)
-# this does not include libraries that we need to compile different projects, we'd like
-# them in a different layer.
-RUN dnf install -y cmake \
- clang \
- lldb-devel \
- make \
- which && \
- dnf clean all
+FROM microsoft/dotnet-buildtools-prereqs:fedora23_prereqs
# Install tools used by the VSO build automation.
-RUN dnf install -y git \
- zip \
- tar \
- nodejs \
- findutils \
- npm && \
- dnf clean all && \
- npm install -g azure-cli && \
- npm cache clean
-
-# Dependencies of CoreCLR and CoreFX.
-RUN dnf install -y libicu-devel \
- libuuid-devel \
- libcurl-devel \
- openssl-devel \
- libunwind-devel \
- lttng-ust-devel && \
+RUN dnf install -y findutils && \
dnf clean all
# Upgrade NSS, used for SSL, to avoid NuGet restore timeouts.
diff --git a/scripts/docker/opensuse.13.2/Dockerfile b/scripts/docker/opensuse.13.2/Dockerfile
index 83244ea3c1..c3cb77eb43 100644
--- a/scripts/docker/opensuse.13.2/Dockerfile
+++ b/scripts/docker/opensuse.13.2/Dockerfile
@@ -3,37 +3,11 @@
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
-FROM opensuse:13.2
+FROM microsoft/dotnet-buildtools-prereqs:opensuse132_prereqs_v4
-# Install the base toolchain we need to build anything (clang, cmake, make and the like)
-# this does not include libraries that we need to compile different projects, we'd like
-# them in a different layer.
-RUN zypper -n install binutils \
- cmake \
- which \
- gcc \
- llvm-clang \
- tar \
- ncurses-utils \
- curl \
- git \
- sudo && \
- ln -s /usr/bin/clang++ /usr/bin/clang++-3.5 && \
+RUN zypper -n install sudo \
+ ncurses-utils && \
zypper clean -a
-
-# Dependencies of CoreCLR and CoreFX. We need to add an additional repository to get lttng.
-RUN zypper addrepo -G http://download.opensuse.org/repositories/devel:/tools:/lttng/openSUSE_13.2/devel:tools:lttng.repo && \
- zypper refresh && \
- zypper -n remove krb5-mini && \
- zypper -n install libunwind \
- libicu \
- lttng-ust \
- libuuid1 \
- libopenssl1_0_0 \
- libcurl4 \
- krb5 && \
- zypper clean -a
-
# Setup User to match Host User, and give superuser permissions
ARG USER_ID=0
RUN useradd -m code_executor -u ${USER_ID} -g wheel
diff --git a/scripts/dockerrun.sh b/scripts/dockerrun.sh
index abdaec636e..7f64935828 100755
--- a/scripts/dockerrun.sh
+++ b/scripts/dockerrun.sh
@@ -115,24 +115,20 @@ echo "Running command: $BUILD_COMMAND"
echo "Using code from: $DOCKER_HOST_SHARE_DIR"
[ -z "$INTERACTIVE" ] || echo "Running Interactive"
+# Note: passwords/keys should not be passed in the environment
docker run $INTERACTIVE -t --rm --sig-proxy=true \
--name $DOTNET_BUILD_CONTAINER_NAME \
-v $DOCKER_HOST_SHARE_DIR:/opt/code \
-e CHANNEL \
- -e CONNECTION_STRING \
-e REPO_ID \
-e REPO_USER \
- -e REPO_PASS \
-e REPO_SERVER \
-e DOTNET_BUILD_SKIP_CROSSGEN \
-e PUBLISH_TO_AZURE_BLOB \
-e NUGET_FEED_URL \
-e NUGET_API_KEY \
- -e GITHUB_PASSWORD \
- -e ARTIFACT_STORAGE_KEY \
-e ARTIFACT_STORAGE_ACCOUNT \
-e ARTIFACT_STORAGE_CONTAINER \
- -e CHECKSUM_STORAGE_KEY \
-e CHECKSUM_STORAGE_ACCOUNT \
-e CHECKSUM_STORAGE_CONTAINER \
-e CLIBUILD_SKIP_TESTS \
@@ -141,10 +137,7 @@ docker run $INTERACTIVE -t --rm --sig-proxy=true \
-e RELEASESUFFIX \
-e COREFXAZURECONTAINER \
-e AZUREACCOUNTNAME \
- -e AZUREACCESSTOKEN \
- -e VSOPASSWORD \
-e RELEASETOOLSGITURL \
-e CORESETUPBLOBROOTURL \
- -e CORESETUPBLOBACCESSTOKEN \
$DOTNET_BUILD_CONTAINER_TAG \
$BUILD_COMMAND "$@"
diff --git a/scripts/obtain/uninstall/dotnet-uninstall-debian-packages.sh b/scripts/obtain/uninstall/dotnet-uninstall-debian-packages.sh
index 2fcd4280bc..a62ce9ed41 100755
--- a/scripts/obtain/uninstall/dotnet-uninstall-debian-packages.sh
+++ b/scripts/obtain/uninstall/dotnet-uninstall-debian-packages.sh
@@ -13,8 +13,10 @@ if [ $current_userid -ne 0 ]; then
fi
host_package_name="dotnet-host"
+aspnetcore_package_store_package_name="^aspnetcore-store.*"
remove_all(){
+ apt-get purge -y $aspnetcore_package_store_package_name
apt-get purge -y $host_package_name
}
diff --git a/scripts/obtain/uninstall/dotnet-uninstall-rpm-packages.sh b/scripts/obtain/uninstall/dotnet-uninstall-rpm-packages.sh
index d3572ec38d..ef7be91afb 100755
--- a/scripts/obtain/uninstall/dotnet-uninstall-rpm-packages.sh
+++ b/scripts/obtain/uninstall/dotnet-uninstall-rpm-packages.sh
@@ -13,9 +13,11 @@ if [ $current_userid -ne 0 ]; then
fi
host_package_name="dotnet-host"
+aspnetcore_package_store_package_name="aspnetcore-store*"
remove_all(){
yum remove -y $host_package_name
+ yum remove -y $aspnetcore_package_store_package_name
}
is_dotnet_host_installed(){
diff --git a/src/Microsoft.DotNet.Archive/CompressionUtility.cs b/src/Microsoft.DotNet.Archive/CompressionUtility.cs
index 0b4e937dc6..285799116b 100644
--- a/src/Microsoft.DotNet.Archive/CompressionUtility.cs
+++ b/src/Microsoft.DotNet.Archive/CompressionUtility.cs
@@ -98,7 +98,7 @@ public static void Decompress(Stream inStream, Stream outStream, IProgress _archiveFiles = new Dictionary();
// maps file hash to external path
@@ -380,7 +380,7 @@ public void Extract(string compressedArchivePath, string outputDirectory, IProgr
extractOperations.AsParallel().ForAll(extractOperation =>
{
extractOperation.DoOperation();
- progress.Report("Expanding", Interlocked.Increment(ref opsExecuted), extractOperations.Count);
+ progress.Report(LocalizableStrings.Expanding, Interlocked.Increment(ref opsExecuted), extractOperations.Count);
});
}
}
diff --git a/src/Microsoft.DotNet.Archive/LocalizableStrings.resx b/src/Microsoft.DotNet.Archive/LocalizableStrings.resx
new file mode 100644
index 0000000000..9f9b5a9e7d
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/LocalizableStrings.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Expanding
+
+
+ Decompressing
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/Microsoft.DotNet.Archive.csproj b/src/Microsoft.DotNet.Archive/Microsoft.DotNet.Archive.csproj
index 9a2cd2cdfe..04b8f25be4 100644
--- a/src/Microsoft.DotNet.Archive/Microsoft.DotNet.Archive.csproj
+++ b/src/Microsoft.DotNet.Archive/Microsoft.DotNet.Archive.csproj
@@ -10,8 +10,13 @@
true
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.cs.xlf
new file mode 100644
index 0000000000..c732705224
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.cs.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.de.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.de.xlf
new file mode 100644
index 0000000000..96d5d68ca0
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.de.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.es.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.es.xlf
new file mode 100644
index 0000000000..926da184e7
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.es.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.fr.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.fr.xlf
new file mode 100644
index 0000000000..5524d98217
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.fr.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.it.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.it.xlf
new file mode 100644
index 0000000000..6c1c155338
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.it.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ja.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ja.xlf
new file mode 100644
index 0000000000..e00b949fb2
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ja.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ko.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ko.xlf
new file mode 100644
index 0000000000..fb515905db
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ko.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pl.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pl.xlf
new file mode 100644
index 0000000000..bfe8b9a350
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pl.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pt-BR.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pt-BR.xlf
new file mode 100644
index 0000000000..9e6cb642c1
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.pt-BR.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ru.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ru.xlf
new file mode 100644
index 0000000000..c09a74f617
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.ru.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.tr.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.tr.xlf
new file mode 100644
index 0000000000..8be3dbe6a6
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.tr.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hans.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hans.xlf
new file mode 100644
index 0000000000..aab479ac3f
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hans.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hant.xlf b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hant.xlf
new file mode 100644
index 0000000000..a333565e15
--- /dev/null
+++ b/src/Microsoft.DotNet.Archive/xlf/LocalizableStrings.zh-Hant.xlf
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Expanding
+ Expanding
+
+
+
+ Decompressing
+ Decompressing
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf
index 85771b494f..a19ec0313e 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf
@@ -39,7 +39,7 @@
Invalid format in line {0}: {1}
- Formato non valido a riga {0}: {1}
+ Formato non valido alla riga {0}: {1}
diff --git a/src/Microsoft.DotNet.Cli.Utils/Product.cs b/src/Microsoft.DotNet.Cli.Utils/Product.cs
index 023004ce4b..8811847b37 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Product.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/Product.cs
@@ -7,7 +7,7 @@ namespace Microsoft.DotNet.Cli.Utils
{
public class Product
{
- public static readonly string LongName = LocalizableStrings.DotNetCommandLineTools;
+ public static string LongName => LocalizableStrings.DotNetCommandLineTools;
public static readonly string Version = GetProductVersion();
private static string GetProductVersion()
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
index d72c9edf88..1aaef6cd52 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
@@ -14,17 +14,17 @@
{0}: attempting to find command {1} in {2}
- {0}: pokus o nalezení příkazu {1} v {2}
+ {0}: Pokus o nalezení příkazu {1} v {2}
{0}: failed to find toolAssembly for {1}
- {0}: nepodařilo se najít toolAssembly pro {1}
+ {0}: Nepodařilo se najít toolAssembly pro {1}
{0}: failed to find commandPath {1}
- {0}: nepodařilo se najít commandPath {1}
+ {0}: Nepodařilo se najít commandPath {1}
@@ -121,7 +121,7 @@
{0}: attempting to create commandspec
- {0}: pokus o vytvoření specifikace příkazu commandspec
+ {0}: Pokus o vytvoření specifikace příkazu commandspec
@@ -131,7 +131,7 @@
{0}: expect deps.json at: {1}
- {0}: soubor deps.json se očekává v: {1}
+ {0}: Soubor deps.json se očekává v: {1}
@@ -206,7 +206,7 @@
< {0} exited with {1} in {2} ms.
- < {0} skončil s {1} ve {2} ms.
+ < {0} skončil s {1} za {2} ms.
@@ -231,7 +231,7 @@
The command executable for "{0}" was not found. The project may not have been restored or restore failed - run `dotnet restore`
- Spustitelný soubor příkazu {0} se nenašel. Projekt zřejmě nebyl obnoven, nebo obnovení selhalo – spusťte příkaz run `dotnet restore`.
+ Spustitelný soubor příkazu {0} se nenašel. Projekt se nepodařilo obnovit nebo jeho obnovení nebylo úspěšné. Spusťte příkaz dotnet restore.