diff --git a/.gitattributes b/.gitattributes
index 8dde15a167..50950c656f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -45,6 +45,8 @@
*.fsx text=auto
*.hs text=auto
+*.props text=auto
+*.targets text=auto
*.csproj text=auto
*.vbproj text=auto
*.fsproj text=auto
diff --git a/README.md b/README.md
index 900de517af..abfd0dcef6 100644
--- a/README.md
+++ b/README.md
@@ -76,9 +76,9 @@ In order to download just the .NET Core runtime without the SDK, please visit ht
| **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** | 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** |
| **CentOS 7.1 / Oracle Linux 7** | tar.gz - See **Linux x64** |
-| **RHEL 7.2** | 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** |
@@ -115,6 +115,12 @@ In order to download just the .NET Core runtime without the SDK, please visit ht
[ubuntu-16.10-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu.16.10-x64.deb
[ubuntu-16.10-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-ubuntu.16.10-x64.deb.sha
+[debian-8-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.0.0/dotnet-sdk-latest-debian-x64.deb
+[debian-8-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.0.0/dotnet-sdk-latest-debian-x64.deb.sha
+
+[rhel-7-installer]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.0.0/dotnet-sdk-latest-rhel-x64.rpm
+[rhel-7-installer-checksum]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.0.0/dotnet-sdk-latest-rhel-x64.rpm.sha
+
# Debian daily feed
Newest SDK binaries for 2.0.0 in debian feed may be delayed due to external issues by up to 24h.
diff --git a/build/DependencyVersions.props b/build/DependencyVersions.props
index 21e9c6d2f9..71abf62a5f 100644
--- a/build/DependencyVersions.props
+++ b/build/DependencyVersions.props
@@ -1,46 +1,47 @@
-
-
-
- 2.0.0-preview3-25415-01
- 15.3.0-preview-000388-01
- 2.3.0-beta3-61814-09
- 1.6.0-beta2-25304
- 4.2.0-rc-170602-0
-
-
- 2.0.0-preview2-20170615-7
- $(CLI_NETSDK_Version)
-
- 4.3.0-preview3-4168
- 2.0.0-preview2-25331-02
- 2.0.0-rel-20170518-512
- 15.3.0-preview-20170609-02
- $(CLI_SharedFrameworkVersion)
- $(CLI_SharedFrameworkVersion)
- $(CLI_SharedFrameworkVersion)
- 1.0.0-beta2-20170608-254
- 1.0.0-beta2-20170612-258
- 1.0.0-beta2-20170612-258
- 2.0.0-preview3-25415-01
- 2.0.0-preview3-25415-01
- 0.1.0-alpha-142
- 1.2.1-alpha-002133
- 0.2.0
- 1.0.0-preview-000297
-
-
- timestamped
- 2.0.0-preview2-186
- preview2
- 25661
-
-
-
-
-
- 1.0.27-prerelease-01611-04
- 2.0.0-preview2-25331-01
-
-
+
+
+
+ 2.0.0-preview3-25419-01
+ 15.3.0-preview-000388-01
+ 2.3.0-beta3-61816-04
+ 1.6.0-beta2-25304
+ 4.2.0-rc-170602-0
+
+
+ 2.0.0-preview2-20170615-7
+ $(CLI_NETSDK_Version)
+
+ 4.3.0-preview3-4168
+ 2.0.0-preview2-25331-02
+ 2.0.0-rel-20170518-512
+ 15.3.0-preview-20170618-03
+ $(CLI_SharedFrameworkVersion)
+ $(CLI_SharedFrameworkVersion)
+ $(CLI_SharedFrameworkVersion)
+ 1.0.0-beta2-20170608-254
+ 1.0.0-beta2-20170612-258
+ 1.0.0-beta2-20170612-258
+ 2.0.0-preview3-25419-01
+ 2.0.0-preview3-25419-01
+ 0.1.0-alpha-142
+ 1.2.1-alpha-002133
+ 0.2.0
+ 1.0.0-preview-000297
+ 0.2.0-beta-000042
+
+
+ timestamped
+ 2.0.0-preview2-186
+ preview2
+ 25661
+
+
+
+
+
+ 1.0.27-prerelease-01611-04
+ 2.0.0-preview2-25331-01
+
+
diff --git a/build/GenerateResxSource.targets b/build/GenerateResxSource.targets
index 8323e93058..b25582ee21 100644
--- a/build/GenerateResxSource.targets
+++ b/build/GenerateResxSource.targets
@@ -15,12 +15,16 @@
-
- %(EmbeddedResource.Namespace).%(EmbeddedResource.Filename)
+
+ %(EmbeddedResource.Namespace).%(EmbeddedResource.Filename)
+
+ %(XlfSource.Namespace).%(XlfSource.Filename)
+ %(XlfSource.Namespace).%(XlfSource.Filename)
+
@@ -35,7 +39,7 @@
-
+ $(IntermediateOutputPath)%(EmbeddedResourceSG.ManifestResourceName).cs
diff --git a/build/Signing.proj b/build/Signing.proj
index 16357a1216..e3bef01229 100644
--- a/build/Signing.proj
+++ b/build/Signing.proj
@@ -39,13 +39,15 @@
+ $(OutputDirectory)/sdk/**/vstest.console.dll;
+ $(OutputDirectory)/sdk/**/vstest.console.resources.dll">
$(InternalCertificateId)
diff --git a/packaging/deb/postinst b/packaging/deb/postinst
index f92c16afad..3ef09330a6 100755
--- a/packaging/deb/postinst
+++ b/packaging/deb/postinst
@@ -2,7 +2,7 @@
echo "This software may collect information about you and your use of the software, and send that to Microsoft."
echo "Please visit http://aka.ms/dotnet-cli-eula for more information."
-# Run 'dotnet new' as the user to trigger the first time experience to initialize the cache
+# Run 'dotnet new' to trigger the first time experience to initialize the cache
echo "Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
@@ -15,4 +15,4 @@ The data collected is anonymous and will be published in an aggregated form for
The .NET Core Tools telemetry feature is enabled by default. You can opt-out of the telemetry feature by setting an environment variable DOTNET_CLI_TELEMETRY_OPTOUT (for example, 'export' on macOS/Linux, 'set' on Windows) to true (for example, 'true', 1). You can read more about .NET Core tools telemetry at https://aka.ms/dotnet-cli-telemetry."
-su - $SUDO_USER -c "dotnet new > /dev/null 2>&1 || true"
+dotnet new > /dev/null 2>&1 || true
diff --git a/packaging/osx/clisdk/scripts/postinstall b/packaging/osx/clisdk/scripts/postinstall
index 54ea36c0d1..4d69748e9a 100755
--- a/packaging/osx/clisdk/scripts/postinstall
+++ b/packaging/osx/clisdk/scripts/postinstall
@@ -11,8 +11,7 @@ INSTALL_DESTINATION=$2
# A temporary fix for the permissions issue(s)
chmod -R 755 $INSTALL_DESTINATION
-# Run 'dotnet new' as user to trigger the first time experience to initialize the cache
-INSTALLER_USER=$(stat -f '%Su' $HOME)
-su - $INSTALLER_USER -c "$INSTALL_DESTINATION/dotnet new > /dev/null 2>&1 || true"
+# Run 'dotnet new' to trigger the first time experience to initialize the cache
+$INSTALL_DESTINATION/dotnet new > /dev/null 2>&1 || true
exit 0
diff --git a/packaging/rpm/scripts/after_install_host.sh b/packaging/rpm/scripts/after_install_host.sh
index dc9f6c0d9d..8b976c8864 100644
--- a/packaging/rpm/scripts/after_install_host.sh
+++ b/packaging/rpm/scripts/after_install_host.sh
@@ -19,4 +19,4 @@ The data collected is anonymous and will be published in an aggregated form for
The .NET Core Tools telemetry feature is enabled by default. You can opt-out of the telemetry feature by setting an environment variable DOTNET_CLI_TELEMETRY_OPTOUT (for example, 'export' on macOS/Linux, 'set' on Windows) to true (for example, 'true', 1). You can read more about .NET Core tools telemetry at https://aka.ms/dotnet-cli-telemetry."
-su - $SUDO_USER -c "dotnet new > /dev/null 2>&1 || true"
+dotnet new > /dev/null 2>&1 || true
diff --git a/packaging/windows/clisdk/bundle.thm b/packaging/windows/clisdk/bundle.thm
index 71b7ef0540..a9c3d64d33 100644
--- a/packaging/windows/clisdk/bundle.thm
+++ b/packaging/windows/clisdk/bundle.thm
@@ -1,6 +1,6 @@
- #(loc.Caption)
+ #(loc.Caption)
Segoe UI
Segoe UI
Segoe UI
@@ -20,19 +20,23 @@
-
-
- #(loc.Motto)
+
-
- #(loc.InstallAcceptCheckbox)
-
+ #(loc.WelcomeHeaderMessage)
+ #(loc.WelcomeDescription)
+ #(loc.LearnMoreTitle)
+ #(loc.CoreDocumentationLink)
+ #(loc.SDKDocumentation)
+ #(loc.PrivacyStatementLink)
+ #(loc.MITLicenseLink)
+ #(loc.InstallationNoteTitle)
+ #(loc.InstallationNote)
-
+ #(loc.FilesInUseHeader)#(loc.FilesInUseLabel)
@@ -47,7 +51,7 @@
-
+ #(loc.ProgressHeader)#(loc.ProgressLabel)
@@ -57,7 +61,7 @@
-
+ #(loc.ModifyHeader)
@@ -66,12 +70,12 @@
-
+ #(loc.SuccessHeader)
- #(loc.FirstTimeWelcomeMessage)
- #(loc.SuccessRepairHeader)
- #(loc.SuccessUninstallHeader)
+ #(loc.FirstTimeWelcomeMessage)
+ #(loc.SuccessRepairHeader)
+ #(loc.SuccessUninstallHeader)#(loc.SuccessRestartText)
@@ -79,7 +83,7 @@
-
+ #(loc.FailureHeader)#(loc.FailureInstallHeader)
diff --git a/packaging/windows/clisdk/bundle.wxl b/packaging/windows/clisdk/bundle.wxl
index e61e26427f..7c93a4955d 100644
--- a/packaging/windows/clisdk/bundle.wxl
+++ b/packaging/windows/clisdk/bundle.wxl
@@ -2,9 +2,6 @@
[WixBundleName] Installer[BUNDLEMONIKER]
- You just need a shell, a text editor and 10 minutes of your time.
-
-Ready? Set? Let's go!Are you sure you want to cancel?Previous versionSetup Help
@@ -50,16 +47,30 @@ Ready? Set? Let's go!
&Do not close applications. A reboot will be required.&OK&Cancel
- Installation completed successfully. Welcome to .NET Core!
-
-Learn more about .NET Core at https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
-
-.NET Core Tools Telemetry
+ The installation was successful
-The .NET Core Tools include a telemetry feature that collects usage information. It is important that the .NET Team understands how the tools are being used so that we can improve them.
+The following were installed at [DOTNETHOME]
+ • .NET Core SDK 2.0.0
+ • .NET Core Runtime 2.0.0
+ • Runtime Package Store
-The data collected is anonymous and will be published in an aggregated form for use by both Microsoft and community engineers under the Creative Commons Attribution License.
+Resources
-The .NET Core Tools telemetry feature is enabled by default. You can opt-out of the telemetry feature by setting an environment variable DOTNET_CLI_TELEMETRY_OPTOUT (for example, 'export' on macOS/Linux, 'set' on Windows) to true (for example, 'true', 1). You can read more about .NET Core tools telemetry at https://aka.ms/dotnet-cli-telemetry.
+ • Core Documentation https://aka.ms/dotnet-docs
+ • SDK Documentation https://aka.ms/dotnet-cli-docs
+ • Release Notes https://aka.ms/20-p2-rel-notes
+ • Tutorials https://aka.ms/dotnet-tutorials
+ • .NET Core Telemetry https://aka.ms/dotnet-cli-telemetry
+ .NET Core SDK
+
+ .NET Core is a development platform that you can use to build command-line applications, microservices and modern websites. It is open source, cross-platform, and supported by Microsoft. We hope you enjoy it!
+ Learn more about .NET Core
+ Resources
+ <A HREF="https://aka.ms/dotnet-docs">Core Documentation</A>
+ <A HREF="https://aka.ms/dotnet-cli-docs">SDK Documentation</A>
+ <A HREF="https://aka.ms/dev-privacy">Privacy Statement</A>
+ <A HREF="https://aka.ms/dotnet-license">MIT License</A>
+ 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.
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj b/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
index fab4bb6bf2..2b23027fd2 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/Microsoft.DotNet.Cli.Sln.Internal.csproj
@@ -24,5 +24,6 @@
+
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/Properties/AssemblyInfo.cs b/src/Microsoft.DotNet.Cli.Sln.Internal/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..b679422791
--- /dev/null
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/Properties/AssemblyInfo.cs
@@ -0,0 +1,12 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("Microsoft.DotNet.Cli.Sln.Internal.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100039ac461fa5c82c7dd2557400c4fd4e9dcdf7ac47e3d572548c04cd4673e004916610f4ea5cbf86f2b1ca1cb824f2a7b3976afecfcf4eb72d9a899aa6786effa10c30399e6580ed848231fec48374e41b3acf8811931343fc2f73acf72dae745adbcb7063cc4b50550618383202875223fc75401351cd89c44bf9b50e7fa3796")]
+[assembly: InternalsVisibleTo("dotnet-sln-add.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-sln-list.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-sln-remove.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+
+
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.cs.xlf
index ca339575a7..5d973eb642 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.cs.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
- Několikrát zadaný globální oddíl
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.de.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.de.xlf
index 4c34a3625c..5e6f488308 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.de.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
- Globaler Abschnitt mehrmals angegeben
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.es.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.es.xlf
index db0dbdc4d1..365664c207 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.es.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
- Sección global especificada más de una vez
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.fr.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.fr.xlf
index 58536cd6c5..dd00afbe03 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.fr.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
- Section Global spécifiée plusieurs fois
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 21c489543f..85771b494f 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
- La sezione Global è stata specificata più di una volta
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ja.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ja.xlf
index 63bc896053..0f7670d89f 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ja.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
- グローバル セクションが 2 回以上指定されています
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ko.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ko.xlf
index 3f8ba8ff3b..7d8766ad5d 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ko.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
- 전역 섹션이 두 번 이상 지정됨
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pl.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pl.xlf
index 7d406ad2bb..957ee2041b 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pl.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
- Sekcja globalna została określona więcej niż raz
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pt-BR.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pt-BR.xlf
index 9edf0bd2de..877faf844f 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
- Seção global especificada mais de uma vez
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ru.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ru.xlf
index 89e081783d..7caa01a43e 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ru.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
- Глобальный раздел указан более одного раза.
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.tr.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.tr.xlf
index 8257ad3696..a7c5cba6b8 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.tr.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
- Genel bölüm birden çok kez belirtilmiş
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hans.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hans.xlf
index 94ec07dfed..b353d12475 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
- 多次指定了全局节
diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hant.xlf b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hant.xlf
index a86fccbc83..7fef8a4f86 100644
--- a/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/Microsoft.DotNet.Cli.Sln.Internal/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
- 全域區段指定了一次以上
diff --git a/src/Microsoft.DotNet.Cli.Utils/IReporter.cs b/src/Microsoft.DotNet.Cli.Utils/IReporter.cs
new file mode 100644
index 0000000000..db04fc1d2e
--- /dev/null
+++ b/src/Microsoft.DotNet.Cli.Utils/IReporter.cs
@@ -0,0 +1,16 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace Microsoft.DotNet.Cli.Utils
+{
+ public interface IReporter
+ {
+
+ void WriteLine(string message);
+
+ void WriteLine();
+
+ void Write(string message);
+
+ }
+}
diff --git a/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
index b29251ca9f..ed1056755d 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
+++ b/src/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
@@ -25,6 +25,7 @@
+
diff --git a/src/Microsoft.DotNet.Cli.Utils/Properties/AssemblyInfo.cs b/src/Microsoft.DotNet.Cli.Utils/Properties/AssemblyInfo.cs
index 63c302ad37..5ebd032359 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Properties/AssemblyInfo.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/Properties/AssemblyInfo.cs
@@ -6,6 +6,7 @@
[assembly: AssemblyMetadataAttribute("Serviceable", "True")]
[assembly: InternalsVisibleTo("dotnet, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.DotNet.Cli.Utils.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.DotNet.TestFramework, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/src/Microsoft.DotNet.Cli.Utils/Reporter.cs b/src/Microsoft.DotNet.Cli.Utils/Reporter.cs
index 0afffa16a6..51b9b1c021 100644
--- a/src/Microsoft.DotNet.Cli.Utils/Reporter.cs
+++ b/src/Microsoft.DotNet.Cli.Utils/Reporter.cs
@@ -4,7 +4,7 @@
namespace Microsoft.DotNet.Cli.Utils
{
// Stupid-simple console manager
- public class Reporter
+ public class Reporter : IReporter
{
private static readonly Reporter NullReporter = new Reporter(console: null);
private static object _lock = new object();
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
index a1fff38116..d72c9edf88 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
- Nesprávně naformátovaný text příkazu {0}
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf
index f00f4adb01..8b0515edb4 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
- Fehlerhafter Befehlstext "{0}".
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf
index 68dc20659d..c235b3cd27 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
- Texto de comando con formato incorrecto "{0}"
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf
index ef15157ad8..507b69cec0 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
- Texte de commande incorrect '{0}'
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf
index 5288534240..7933431291 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
- Il testo del comando '{0}' non è corretto
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf
index 17edaee2f1..df6ae7af0f 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
- 無効な形式のコマンド テキスト '{0}'
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf
index c9b6ccea68..028f28a5ba 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
- 형식이 잘못된 명령 텍스트 '{0}'
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf
index 4e1d131d0a..49ae8eed02 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
- Nieprawidłowo sformułowany tekst polecenia „{0}”
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf
index 3defe62060..aa7c616907 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
- Texto do comando malformado '{0}'
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf
index 821054bc2b..40b6ff0c24 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
- Неправильный формат текста команды "{0}"
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf
index e8546e8ce3..4eb79b65ca 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
- Hatalı biçimlendirilmiş komut metni: '{0}'
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf
index 6551cf8279..f9baf02cb5 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
- 命令文本“{0}”格式错误
diff --git a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf
index a7ac1b6ad9..88c9e644bb 100644
--- a/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/Microsoft.DotNet.Cli.Utils/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
- 命令文字 '{0}' 格式錯誤
diff --git a/src/Microsoft.DotNet.Configurer/CliFallbackFolderPathCalculator.cs b/src/Microsoft.DotNet.Configurer/CliFallbackFolderPathCalculator.cs
index 354d23ab44..ddeac908fe 100644
--- a/src/Microsoft.DotNet.Configurer/CliFallbackFolderPathCalculator.cs
+++ b/src/Microsoft.DotNet.Configurer/CliFallbackFolderPathCalculator.cs
@@ -12,14 +12,18 @@ namespace Microsoft.DotNet.Configurer
{
public class CliFallbackFolderPathCalculator
{
- public string CliFallbackFolderPath
+ public string CliFallbackFolderPath =>
+ Environment.GetEnvironmentVariable("DOTNET_CLI_TEST_FALLBACKFOLDER") ??
+ Path.Combine(new DirectoryInfo(AppContext.BaseDirectory).Parent.FullName, "NuGetFallbackFolder");
+
+ public string DotnetUserProfileFolderPath
{
get
{
string profileDir = Environment.GetEnvironmentVariable(
RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "USERPROFILE" : "HOME");
- return Path.Combine(profileDir, ".dotnet", "NuGetFallbackFolder");
+ return Path.Combine(profileDir, ".dotnet");
}
}
diff --git a/src/Microsoft.DotNet.Configurer/DotnetFirstTimeUseConfigurer.cs b/src/Microsoft.DotNet.Configurer/DotnetFirstTimeUseConfigurer.cs
index fd46cf9728..e13637c47a 100644
--- a/src/Microsoft.DotNet.Configurer/DotnetFirstTimeUseConfigurer.cs
+++ b/src/Microsoft.DotNet.Configurer/DotnetFirstTimeUseConfigurer.cs
@@ -9,39 +9,89 @@ namespace Microsoft.DotNet.Configurer
{
public class DotnetFirstTimeUseConfigurer
{
+ private IReporter _reporter;
private IEnvironmentProvider _environmentProvider;
private INuGetCachePrimer _nugetCachePrimer;
private INuGetCacheSentinel _nugetCacheSentinel;
+ private IFirstTimeUseNoticeSentinel _firstTimeUseNoticeSentinel;
+ private string _cliFallbackFolderPath;
public DotnetFirstTimeUseConfigurer(
INuGetCachePrimer nugetCachePrimer,
INuGetCacheSentinel nugetCacheSentinel,
- IEnvironmentProvider environmentProvider)
+ IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel,
+ IEnvironmentProvider environmentProvider,
+ IReporter reporter,
+ string cliFallbackFolderPath)
{
_nugetCachePrimer = nugetCachePrimer;
_nugetCacheSentinel = nugetCacheSentinel;
+ _firstTimeUseNoticeSentinel = firstTimeUseNoticeSentinel;
_environmentProvider = environmentProvider;
+ _reporter = reporter;
+ _cliFallbackFolderPath = cliFallbackFolderPath;
}
public void Configure()
{
- if(ShouldPrimeNugetCache())
+ if (ShouldPrintFirstTimeUseNotice())
{
PrintFirstTimeUseNotice();
+ }
+
+ if (ShouldPrimeNugetCache())
+ {
+ if (_nugetCacheSentinel.UnauthorizedAccess)
+ {
+ PrintUnauthorizedAccessMessage();
+ }
+
+ PrintNugetCachePrimeMessage();
_nugetCachePrimer.PrimeCache();
}
}
+ private bool ShouldPrintFirstTimeUseNotice()
+ {
+ var showFirstTimeUseNotice =
+ _environmentProvider.GetEnvironmentVariableAsBool("DOTNET_PRINT_TELEMETRY_MESSAGE", true);
+
+ return ShouldRunFirstRunExperience() &&
+ showFirstTimeUseNotice &&
+ !_firstTimeUseNoticeSentinel.Exists();
+ }
+
private void PrintFirstTimeUseNotice()
{
- string firstTimeUseWelcomeMessage = LocalizableStrings.FirstTimeWelcomeMessage;
+ _reporter.WriteLine();
+ _reporter.WriteLine(LocalizableStrings.FirstTimeWelcomeMessage);
- Reporter.Output.WriteLine();
- Reporter.Output.WriteLine(firstTimeUseWelcomeMessage);
+ _firstTimeUseNoticeSentinel.CreateIfNotExists();
+ }
+
+ private void PrintUnauthorizedAccessMessage()
+ {
+ _reporter.WriteLine();
+ _reporter.WriteLine(string.Format(
+ LocalizableStrings.UnauthorizedAccessMessage,
+ _cliFallbackFolderPath));
}
private bool ShouldPrimeNugetCache()
+ {
+ return ShouldRunFirstRunExperience() &&
+ !_nugetCachePrimer.SkipPrimingTheCache();
+ }
+
+ private void PrintNugetCachePrimeMessage()
+ {
+ string cachePrimeMessage = LocalizableStrings.NugetCachePrimeMessage;
+ _reporter.WriteLine();
+ _reporter.WriteLine(cachePrimeMessage);
+ }
+
+ private bool ShouldRunFirstRunExperience()
{
var skipFirstTimeExperience =
_environmentProvider.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false);
diff --git a/src/Microsoft.DotNet.Configurer/FirstTimeUseNoticeSentinel.cs b/src/Microsoft.DotNet.Configurer/FirstTimeUseNoticeSentinel.cs
new file mode 100644
index 0000000000..463b5bc4a2
--- /dev/null
+++ b/src/Microsoft.DotNet.Configurer/FirstTimeUseNoticeSentinel.cs
@@ -0,0 +1,49 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.IO;
+using Microsoft.DotNet.Cli.Utils;
+using Microsoft.Extensions.EnvironmentAbstractions;
+using NuGet.Configuration;
+
+namespace Microsoft.DotNet.Configurer
+{
+ public class FirstTimeUseNoticeSentinel : IFirstTimeUseNoticeSentinel
+ {
+ public static readonly string SENTINEL = $"{Product.Version}.dotnetFirstUseSentinel";
+
+ private readonly IFile _file;
+
+ private string _dotnetUserProfileFolderPath;
+
+ private string SentinelPath => Path.Combine(_dotnetUserProfileFolderPath, SENTINEL);
+
+ public FirstTimeUseNoticeSentinel(CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator) :
+ this(cliFallbackFolderPathCalculator.DotnetUserProfileFolderPath, FileSystemWrapper.Default.File)
+ {
+ }
+
+ internal FirstTimeUseNoticeSentinel(string dotnetUserProfileFolderPath, IFile file)
+ {
+ _file = file;
+ _dotnetUserProfileFolderPath = dotnetUserProfileFolderPath;
+ }
+
+ public bool Exists()
+ {
+ return _file.Exists(SentinelPath);
+ }
+
+ public void CreateIfNotExists()
+ {
+ if (!Exists())
+ {
+ _file.CreateEmptyFile(SentinelPath);
+ }
+ }
+
+ public void Dispose()
+ {
+ }
+ }
+}
diff --git a/src/Microsoft.DotNet.Configurer/INuGetConfig.cs b/src/Microsoft.DotNet.Configurer/IFirstTimeUseNoticeSentinel.cs
similarity index 62%
rename from src/Microsoft.DotNet.Configurer/INuGetConfig.cs
rename to src/Microsoft.DotNet.Configurer/IFirstTimeUseNoticeSentinel.cs
index a5ba7a531a..c0d1878fa0 100644
--- a/src/Microsoft.DotNet.Configurer/INuGetConfig.cs
+++ b/src/Microsoft.DotNet.Configurer/IFirstTimeUseNoticeSentinel.cs
@@ -1,10 +1,14 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+using System;
+
namespace Microsoft.DotNet.Configurer
{
- public interface INuGetConfig
+ public interface IFirstTimeUseNoticeSentinel : IDisposable
{
- void AddCliFallbackFolder(string fallbackFolderPath);
+ bool Exists();
+
+ void CreateIfNotExists();
}
}
diff --git a/src/Microsoft.DotNet.Configurer/INuGetCachePrimer.cs b/src/Microsoft.DotNet.Configurer/INuGetCachePrimer.cs
index f570128d4f..14770532b9 100644
--- a/src/Microsoft.DotNet.Configurer/INuGetCachePrimer.cs
+++ b/src/Microsoft.DotNet.Configurer/INuGetCachePrimer.cs
@@ -6,5 +6,6 @@ namespace Microsoft.DotNet.Configurer
public interface INuGetCachePrimer
{
void PrimeCache();
+ bool SkipPrimingTheCache();
}
}
diff --git a/src/Microsoft.DotNet.Configurer/INuGetCacheSentinel.cs b/src/Microsoft.DotNet.Configurer/INuGetCacheSentinel.cs
index 0eaa8d91d4..9564145e86 100644
--- a/src/Microsoft.DotNet.Configurer/INuGetCacheSentinel.cs
+++ b/src/Microsoft.DotNet.Configurer/INuGetCacheSentinel.cs
@@ -12,5 +12,7 @@ public interface INuGetCacheSentinel : IDisposable
bool Exists();
void CreateIfNotExists();
+
+ bool UnauthorizedAccess { get; }
}
}
diff --git a/src/Microsoft.DotNet.Configurer/LocalizableStrings.resx b/src/Microsoft.DotNet.Configurer/LocalizableStrings.resx
index 15ada4de5e..7b56bd336f 100644
--- a/src/Microsoft.DotNet.Configurer/LocalizableStrings.resx
+++ b/src/Microsoft.DotNet.Configurer/LocalizableStrings.resx
@@ -126,13 +126,24 @@ Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
-You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
-
-Configuring...
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+
+
+ Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.Failed to prime the NuGet cache. {0} failed with: {1}
-
\ No newline at end of file
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
diff --git a/src/Microsoft.DotNet.Configurer/Microsoft.DotNet.Configurer.csproj b/src/Microsoft.DotNet.Configurer/Microsoft.DotNet.Configurer.csproj
index 92026b83f4..25a33c6f8a 100644
--- a/src/Microsoft.DotNet.Configurer/Microsoft.DotNet.Configurer.csproj
+++ b/src/Microsoft.DotNet.Configurer/Microsoft.DotNet.Configurer.csproj
@@ -19,6 +19,7 @@
+
diff --git a/src/Microsoft.DotNet.Configurer/NuGetCachePrimer.cs b/src/Microsoft.DotNet.Configurer/NuGetCachePrimer.cs
index e0609d7d05..5233d3359a 100644
--- a/src/Microsoft.DotNet.Configurer/NuGetCachePrimer.cs
+++ b/src/Microsoft.DotNet.Configurer/NuGetCachePrimer.cs
@@ -17,18 +17,14 @@ public class NuGetCachePrimer : INuGetCachePrimer
private readonly INuGetCacheSentinel _nuGetCacheSentinel;
- private readonly INuGetConfig _nuGetConfig;
-
private readonly CliFallbackFolderPathCalculator _cliFallbackFolderPathCalculator;
public NuGetCachePrimer(
INuGetPackagesArchiver nugetPackagesArchiver,
INuGetCacheSentinel nuGetCacheSentinel,
- INuGetConfig nuGetConfig,
CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator)
: this(nugetPackagesArchiver,
nuGetCacheSentinel,
- nuGetConfig,
cliFallbackFolderPathCalculator,
FileSystemWrapper.Default.File)
{
@@ -37,7 +33,6 @@ public NuGetCachePrimer(
internal NuGetCachePrimer(
INuGetPackagesArchiver nugetPackagesArchiver,
INuGetCacheSentinel nuGetCacheSentinel,
- INuGetConfig nuGetConfig,
CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator,
IFile file)
{
@@ -45,8 +40,6 @@ internal NuGetCachePrimer(
_nuGetCacheSentinel = nuGetCacheSentinel;
- _nuGetConfig = nuGetConfig;
-
_cliFallbackFolderPathCalculator = cliFallbackFolderPathCalculator;
_file = file;
@@ -61,14 +54,12 @@ public void PrimeCache()
var nuGetFallbackFolder = _cliFallbackFolderPathCalculator.CliFallbackFolderPath;
- _nuGetConfig.AddCliFallbackFolder(nuGetFallbackFolder);
-
_nugetPackagesArchiver.ExtractArchive(nuGetFallbackFolder);
_nuGetCacheSentinel.CreateIfNotExists();
}
- private bool SkipPrimingTheCache()
+ public bool SkipPrimingTheCache()
{
return !_file.Exists(_nugetPackagesArchiver.NuGetPackagesArchive);
}
diff --git a/src/Microsoft.DotNet.Configurer/NuGetCacheSentinel.cs b/src/Microsoft.DotNet.Configurer/NuGetCacheSentinel.cs
index fccb50c1ed..def0876150 100644
--- a/src/Microsoft.DotNet.Configurer/NuGetCacheSentinel.cs
+++ b/src/Microsoft.DotNet.Configurer/NuGetCacheSentinel.cs
@@ -1,6 +1,7 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+using System;
using System.IO;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.Extensions.EnvironmentAbstractions;
@@ -13,8 +14,12 @@ public class NuGetCacheSentinel : INuGetCacheSentinel
public static readonly string SENTINEL = $"{Product.Version}.dotnetSentinel";
public static readonly string INPROGRESS_SENTINEL = $"{Product.Version}.inprogress.dotnetSentinel";
+ public bool UnauthorizedAccess { get; private set; }
+
private readonly IFile _file;
+ private readonly IDirectory _directory;
+
private string _nugetCachePath;
private string SentinelPath => Path.Combine(_nugetCachePath, SENTINEL);
@@ -23,14 +28,17 @@ public class NuGetCacheSentinel : INuGetCacheSentinel
private Stream InProgressSentinel { get; set; }
public NuGetCacheSentinel(CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator) :
- this(cliFallbackFolderPathCalculator.CliFallbackFolderPath, FileSystemWrapper.Default.File)
+ this(cliFallbackFolderPathCalculator.CliFallbackFolderPath,
+ FileSystemWrapper.Default.File,
+ FileSystemWrapper.Default.Directory)
{
}
- internal NuGetCacheSentinel(string nugetCachePath, IFile file)
+ internal NuGetCacheSentinel(string nugetCachePath, IFile file, IDirectory directory)
{
- _file = file;
_nugetCachePath = nugetCachePath;
+ _file = file;
+ _directory = directory;
SetInProgressSentinel();
}
@@ -62,9 +70,9 @@ private void SetInProgressSentinel()
{
try
{
- if (!Directory.Exists(_nugetCachePath))
+ if (!_directory.Exists(_nugetCachePath))
{
- Directory.CreateDirectory(_nugetCachePath);
+ _directory.CreateDirectory(_nugetCachePath);
}
// open an exclusive handle to the in-progress sentinel and mark it for delete on close.
@@ -80,6 +88,10 @@ private void SetInProgressSentinel()
1,
FileOptions.DeleteOnClose);
}
+ catch (UnauthorizedAccessException)
+ {
+ UnauthorizedAccess = true;
+ }
catch { }
}
diff --git a/src/Microsoft.DotNet.Configurer/NuGetConfig.cs b/src/Microsoft.DotNet.Configurer/NuGetConfig.cs
deleted file mode 100644
index ec5ffc4dd9..0000000000
--- a/src/Microsoft.DotNet.Configurer/NuGetConfig.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) .NET Foundation and contributors. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using NuGet.Common;
-using NuGet.Configuration;
-using System.Linq;
-
-namespace Microsoft.DotNet.Configurer
-{
- public class NuGetConfig : INuGetConfig
- {
- public const string FallbackPackageFolders = "packageSources";
-
- private ISettings _settings;
-
- public NuGetConfig(CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator)
- {
- _settings = new Settings(cliFallbackFolderPathCalculator.NuGetUserSettingsDirectory);
- }
-
- internal NuGetConfig(ISettings settings)
- {
- _settings = settings;
- }
-
- public void AddCliFallbackFolder(string fallbackFolderPath)
- {
- if (!IsCliFallbackFolderSet(fallbackFolderPath))
- {
- _settings.SetValue(FallbackPackageFolders, "CliFallbackFolder", fallbackFolderPath);
- }
- }
-
- private bool IsCliFallbackFolderSet(string fallbackFolderPath)
- {
- return _settings.GetSettingValues(FallbackPackageFolders).Any(s => s.Value == fallbackFolderPath);
- }
- }
-}
diff --git a/src/Microsoft.DotNet.Configurer/Properties/Properties.cs b/src/Microsoft.DotNet.Configurer/Properties/Properties.cs
index 9377630bc4..ae22fe8f9c 100644
--- a/src/Microsoft.DotNet.Configurer/Properties/Properties.cs
+++ b/src/Microsoft.DotNet.Configurer/Properties/Properties.cs
@@ -6,3 +6,4 @@
[assembly: AssemblyMetadataAttribute("Serviceable", "True")]
[assembly: InternalsVisibleTo("Microsoft.DotNet.Configurer.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.cs.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.cs.xlf
index 78ce8ba796..52a1fd5b79 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.cs.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
-
- Vítá vás .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Vítá vás .NET Core!
---------------------
Další informace o .NET Core najdete na https://aka.ms/dotnet-docs. Dostupné příkazy si zobrazíte pomocí dotnet --help, případně přejděte na https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Běží příkaz pro počáteční naplnění vaší místní mezipaměti balí
Nepodařilo se naplnit mezipaměť NuGet. {0} selhalo s: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.de.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.de.xlf
index 128f161cad..a029697dee 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.de.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
-
- Willkommen bei .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Willkommen bei .NET Core!
---------------------
Weitere Informationen zu .NET Core finden Sie unter https://aka.ms/dotnet-docs. Verwenden Sie "dotnet --help", um die verfügbaren Befehle anzuzeigen, oder wechseln Sie zu https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Ein Befehl wird ausgeführt, um Ihren lokalen Paketcache erstmals aufzufüllen,
Fehler beim Vorbereiten des NuGet-Caches. Fehler von {0} mit: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.es.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.es.xlf
index 32189d1bfe..2033ddcf5d 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.es.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
-
- Bienvenido a .NET Core
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Bienvenido a .NET Core
---------------------
Obtenga más información sobre .NET Core en https://aka.ms/dotnet-docs. Use dotnet --help para ver los comandos disponibles o vaya a https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Un comando se ejecuta para rellenar inicialmente la caché de paquete local a fi
No se pudo desbloquear la caché de NuGet. Error de {0} con: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.fr.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.fr.xlf
index 29c2c77473..42e71a3f12 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.fr.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
-
- Bienvenue dans .NET Core !
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Bienvenue dans .NET Core !
---------------------
En savoir plus sur .NET Core @ https://aka.ms/dotnet-docs. Utilisez dotnet --help pour voir les commandes disponibles, ou accédez à https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Une commande s'exécute pour remplir votre cache de package local, améliorer la
Échec de la préparation du cache NuGet. Échec de {0} : {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.it.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.it.xlf
index f698081ac3..40e6319d89 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.it.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
-
- Benvenuti a .NET Core
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Benvenuti a .NET Core
---------------------
Per altre informazioni su .NET Core, vedere https://aka.ms/dotnet-docs. Per visualizzare i comandi disponibili, usare dotnet --help oppure vedere https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Configurazione...
Non è possibile inizializzare la cache NuGet. {0} non riuscito. Errore: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ja.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ja.xlf
index 675634dbae..a0eb36e43a 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ja.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
-
- .NET Core へようこそ!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ .NET Core へようこそ!
---------------------
.NET Core について詳しくは、https://aka.ms/dotnet-docs をご覧ください。dotnet --help を使って使用可能なコマンドを確認するか、https://aka.ms/dotnet-cli-docs をご覧ください。
@@ -37,6 +32,34 @@ A command is running to initially populate your local package cache, to improve
NuGet キャッシュを準備できませんでした。{0} は {1} で失敗しました
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ko.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ko.xlf
index 65047c43a6..912a1935c1 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ko.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
-
- NET Core를 시작합니다!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ NET Core를 시작합니다!
---------------------
.NET Core에 대한 자세한 내용은 https://aka.ms/dotnet-docs를 참조하세요. 사용 가능한 명령을 보려면 dotnet --help를 사용하거나 https://aka.ms/dotnet-cli-docs를 방문하세요.
@@ -37,6 +32,34 @@ A command is running to initially populate your local package cache, to improve
NuGet 캐시를 초기화하지 못했습니다. {0} 실패: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pl.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pl.xlf
index 9e040e1e9c..d998cc6666 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pl.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
-
- .NET Core — Zapraszamy!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ .NET Core — Zapraszamy!
---------------------
Więcej informacji o programie .NET Core znajdziesz na stronie https://aka.ms/dotnet-docs. Aby wyświetlić dostępne polecenia, użyj polecenia dotnet --help lub przejdź na stronę https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Wykonywane jest polecenie w celu wstępnego wypełnienia lokalnej pamięci podr
Nie można utworzyć głównej pamięci podręcznej NuGet. Operacja {0} zakończyła się niepowodzeniem: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pt-BR.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pt-BR.xlf
index cde0e1ec64..b6677da51b 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
-
- Bem-vindo ao .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Bem-vindo ao .NET Core!
---------------------
Saiba mais sobre o .NET Core em https://aka.ms/dotnet-docs. Use dotnet --help para ver os comandos disponíveis ou acesse https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ Um comando está sendo executado para popular inicialmente o cache do pacote loc
Falha ao preparar o cache do NuGet. {0} falhou com: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ru.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ru.xlf
index f6f2f72521..f1f42e9a23 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ru.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
-
- Добро пожаловать в .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ Добро пожаловать в .NET Core!
---------------------
Дополнительные сведения о .NET Core можно получить по адресу https://aka.ms/dotnet-docs. Для просмотра доступных команд используйте dotnet --help или перейдите на страницу https://aka.ms/dotnet-cli-docs.
@@ -37,6 +32,34 @@ A command is running to initially populate your local package cache, to improve
Не удалось изначально создать кэш NuGet. {0} завершился с ошибкой: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.tr.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.tr.xlf
index e4930ea01e..33a88c8e1e 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.tr.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
-
- .NET Core’a Hoş Geldiniz!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ .NET Core’a Hoş Geldiniz!
---------------------
.NET Core hakkında daha fazla bilgiyi https://aka.ms/dotnet-docs adresinde bulabilirsiniz. Kullanılabilir komutları görmek için dotnet --help kullanın veya https://aka.ms/dotnet-cli-docs adresine gidin.
@@ -37,6 +32,34 @@ Yerel paket önbelleğinizi başlangıçta doldurmak, geri yükleme hızını ar
Birincil NuGet önbelleği hazırlanamadı. {0} şu hata ile başarısız oldu: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.xlf
index 45687abde8..64e3c6463d 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.xlf
@@ -25,4 +25,4 @@ A command is running to initially populate your local package cache, to improve
-
\ No newline at end of file
+
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hans.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hans.xlf
index d524b7f9f2..99f5c4d5cd 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
-
- 欢迎使用 .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ 欢迎使用 .NET Core!
---------------------
若要详细了解 .NET Core,请访问 https://aka.ms/dotnet-docs。使用 dotnet --help 查看可用的命令或转到 https://aka.ms/dotnet-cli-docs。
@@ -37,6 +32,34 @@ A command is running to initially populate your local package cache, to improve
未能准备好 NuGet 缓存。{0} 失败,错误为: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hant.xlf b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hant.xlf
index 8294903378..be7388cbcd 100644
--- a/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/Microsoft.DotNet.Configurer/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
-
- 歡迎使用 .NET Core!
+You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
+ 歡迎使用 .NET Core!
---------------------
深入了解 .NET Core @ https://aka.ms/dotnet-docs。使用 dotnet --help 查看可用的命令,或前往 https://aka.ms/dotnet-cli-docs。
@@ -37,6 +32,34 @@ A command is running to initially populate your local package cache, to improve
無法備妥 NuGet 快取。{0} 失敗,發生: {1}
+
+
+ Configuring...
+-------------------
+A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
+
+
+
+
+ Permission denied to modify the '{0}' folder.
+
+Here are some options to fix this error:
+---------------------
+1. Re-run this command with elevated access.
+2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
+3. Copy the .NET Core SDK to a non-protected location and use it from there.
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DotNet.InternalAbstractions/DirectoryWrapper.cs b/src/Microsoft.DotNet.InternalAbstractions/DirectoryWrapper.cs
index 53005a4568..d0c26bd708 100644
--- a/src/Microsoft.DotNet.InternalAbstractions/DirectoryWrapper.cs
+++ b/src/Microsoft.DotNet.InternalAbstractions/DirectoryWrapper.cs
@@ -42,5 +42,10 @@ public string GetDirectoryFullName(string path)
return directoryFullName;
}
+
+ public void CreateDirectory(string path)
+ {
+ Directory.CreateDirectory(path);
+ }
}
}
diff --git a/src/Microsoft.DotNet.InternalAbstractions/IDirectory.cs b/src/Microsoft.DotNet.InternalAbstractions/IDirectory.cs
index 61087e0889..8590bab5a2 100644
--- a/src/Microsoft.DotNet.InternalAbstractions/IDirectory.cs
+++ b/src/Microsoft.DotNet.InternalAbstractions/IDirectory.cs
@@ -14,5 +14,7 @@ internal interface IDirectory
IEnumerable GetFiles(string path, string searchPattern);
string GetDirectoryFullName(string path);
+
+ void CreateDirectory(string path);
}
}
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.cs.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.cs.xlf
index 5b53e31ee5..d271aa95a6 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.cs.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
- Poslední argument {0} umožňuje zadat několik hodnot. Nemůžete přidat další argument.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.de.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.de.xlf
index 3b222319db..7ad90723ad 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.de.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
- Das letzte Argument „{0}“ akzeptiert mehrere Werte. Es kann kein weiteres Argument mehr hinzugefügt werden.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.es.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.es.xlf
index 580a04dee5..2f0a1e7e39 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.es.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
- El último argumento "{0}" acepta varios valores. No se pueden agregar más argumentos.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.fr.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.fr.xlf
index 93027ad530..95bb4f4f1f 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.fr.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
- Le dernier argument '{0}' accepte plusieurs valeurs. Impossible d'ajouter des arguments supplémentaires.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.it.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.it.xlf
index a49b99373f..a3b1973dac 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.it.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
- L'ultimo argomento '{0}' accetta più valori. Non è possibile aggiungere altri argomenti.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.ja.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.ja.xlf
index 35765456b7..31a44a92ac 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.ja.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
- 最後の引数 '{0}' は複数の値を受け入れます。さらに引数を追加することはできません。
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.ko.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.ko.xlf
index a5e6d098ca..0a7b6839a6 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.ko.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
- 마지막 인수 '{0}'은(는) 여러 값을 허용합니다. 더 이상 인수를 추가할 수 없습니다.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.pl.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.pl.xlf
index f58b252e04..ad41c391f2 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.pl.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
- Ostatni argument „{0}” przyjmuje wiele wartości. Nie można dodać kolejnych argumentów.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.pt-BR.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.pt-BR.xlf
index d92f45099e..daf4864c4e 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
- O último argumento '{0}' aceita vários valores. Nenhum outro argumento pode ser adicionado.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.ru.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.ru.xlf
index dcd9c1a6c8..5707f243cc 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.ru.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
- Последний аргумент "{0}" принимает несколько значений. Добавить дополнительные аргументы нельзя.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.tr.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.tr.xlf
index 4a63da57b3..d7f9a7e841 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.tr.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
- Son bağımsız değişken ('{0}') birden çok değer kabul ediyor. Daha fazla bağımsız değişken eklenemez.
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hans.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hans.xlf
index c3dde0b626..96c534b168 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
- 最后一个参数“{0}”接受多个值。不能再添加任何参数。
diff --git a/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hant.xlf b/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hant.xlf
index d69eed2659..fce6149cf5 100644
--- a/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/dotnet/CommandLine/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
- 最後一個引數 '{0}' 接受多個值。無法再新增更多引數。
diff --git a/src/dotnet/CommonLocalizableStrings.resx b/src/dotnet/CommonLocalizableStrings.resx
index a2f5c3270e..d165ca59ee 100644
--- a/src/dotnet/CommonLocalizableStrings.resx
+++ b/src/dotnet/CommonLocalizableStrings.resx
@@ -354,9 +354,6 @@
You must specify at least one reference to add.
-
- Project {0} already has a reference `{1}`.
-
Package reference `{0}` does not exist.
diff --git a/src/dotnet/Program.cs b/src/dotnet/Program.cs
index 42e04517f8..51704ece6d 100644
--- a/src/dotnet/Program.cs
+++ b/src/dotnet/Program.cs
@@ -81,6 +81,7 @@ internal static int ProcessArgs(string[] args, ITelemetry telemetryClient = null
var lastArg = 0;
var cliFallbackFolderPathCalculator = new CliFallbackFolderPathCalculator();
using (INuGetCacheSentinel nugetCacheSentinel = new NuGetCacheSentinel(cliFallbackFolderPathCalculator))
+ using (IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel = new FirstTimeUseNoticeSentinel(cliFallbackFolderPathCalculator))
{
for (; lastArg < args.Length; lastArg++)
{
@@ -112,7 +113,7 @@ internal static int ProcessArgs(string[] args, ITelemetry telemetryClient = null
}
else
{
- ConfigureDotNetForFirstTimeUse(nugetCacheSentinel, cliFallbackFolderPathCalculator);
+ ConfigureDotNetForFirstTimeUse(nugetCacheSentinel, firstTimeUseNoticeSentinel, cliFallbackFolderPathCalculator);
// It's the command, and we're done!
command = args[lastArg];
@@ -127,7 +128,7 @@ internal static int ProcessArgs(string[] args, ITelemetry telemetryClient = null
if (telemetryClient == null)
{
- telemetryClient = new Telemetry(nugetCacheSentinel);
+ telemetryClient = new Telemetry(firstTimeUseNoticeSentinel);
}
}
@@ -168,6 +169,7 @@ internal static int ProcessArgs(string[] args, ITelemetry telemetryClient = null
private static void ConfigureDotNetForFirstTimeUse(
INuGetCacheSentinel nugetCacheSentinel,
+ IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel,
CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator)
{
using (PerfTrace.Current.CaptureTiming())
@@ -175,16 +177,17 @@ private static void ConfigureDotNetForFirstTimeUse(
var nugetPackagesArchiver = new NuGetPackagesArchiver();
var environmentProvider = new EnvironmentProvider();
var commandFactory = new DotNetCommandFactory(alwaysRunOutOfProc: true);
- var nugetConfig = new NuGetConfig(cliFallbackFolderPathCalculator);
var nugetCachePrimer = new NuGetCachePrimer(
nugetPackagesArchiver,
nugetCacheSentinel,
- nugetConfig,
cliFallbackFolderPathCalculator);
var dotnetConfigurer = new DotnetFirstTimeUseConfigurer(
nugetCachePrimer,
nugetCacheSentinel,
- environmentProvider);
+ firstTimeUseNoticeSentinel,
+ environmentProvider,
+ Reporter.Output,
+ cliFallbackFolderPathCalculator.CliFallbackFolderPath);
dotnetConfigurer.Configure();
}
diff --git a/src/dotnet/Properties/AssemblyInfo.cs b/src/dotnet/Properties/AssemblyInfo.cs
index 17e7262e48..d80fece972 100644
--- a/src/dotnet/Properties/AssemblyInfo.cs
+++ b/src/dotnet/Properties/AssemblyInfo.cs
@@ -6,3 +6,10 @@
[assembly: AssemblyMetadataAttribute("Serviceable", "True")]
[assembly: InternalsVisibleTo("dotnet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-add-package.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-help.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-remove-package.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-sln-add.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-sln-list.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-sln-remove.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-msbuild.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/src/dotnet/Telemetry.cs b/src/dotnet/Telemetry.cs
index c63df33ce7..baa0d70154 100644
--- a/src/dotnet/Telemetry.cs
+++ b/src/dotnet/Telemetry.cs
@@ -35,9 +35,9 @@ public class Telemetry : ITelemetry
public Telemetry () : this(null) { }
- public Telemetry(INuGetCacheSentinel sentinel) : this(sentinel, null) { }
+ public Telemetry(IFirstTimeUseNoticeSentinel sentinel) : this(sentinel, null) { }
- public Telemetry(INuGetCacheSentinel sentinel, string sessionId)
+ public Telemetry(IFirstTimeUseNoticeSentinel sentinel, string sessionId)
{
Enabled = !Env.GetEnvironmentVariableAsBool(TelemetryOptout) && PermissionExists(sentinel);
@@ -53,7 +53,7 @@ public Telemetry(INuGetCacheSentinel sentinel, string sessionId)
_trackEventTask = Task.Factory.StartNew(() => InitializeTelemetry());
}
- private bool PermissionExists(INuGetCacheSentinel sentinel)
+ private bool PermissionExists(IFirstTimeUseNoticeSentinel sentinel)
{
if (sentinel == null)
{
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.cs.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.cs.xlf
index 837d88215a..11241842ae 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.cs.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
- Příkaz rozhraní .NET pro přidání odkazu na balíček
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.de.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.de.xlf
index 543177fdc9..2ccf2d7bea 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.de.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
- .NET Add-Befehl für Paketverweise
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.es.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.es.xlf
index a1a834a3ac..44c2d22e4f 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.es.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
- Comando de .NET para agregar referencia de paquete
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.fr.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.fr.xlf
index b7b62739b0..a3bbfa6a5d 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.fr.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
- Commande Ajouter une référence de package .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.it.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.it.xlf
index 69fe10153d..8292d33149 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.it.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
- Comando Aggiungi riferimento al pacchetto .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ja.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ja.xlf
index f61d1b5017..7170969df0 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ja.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
- .NET Add Package 参照コマンド
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ko.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ko.xlf
index f5c394e21c..d60e087eb6 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ko.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
- .NET 패키지 참조 추가 명령
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pl.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pl.xlf
index 80258918bd..80aaba9ee1 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pl.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
- Polecenie dodawania odwołania do pakietu platformy .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pt-BR.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pt-BR.xlf
index deb11b65a3..3777834fde 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
- Comando de adicionar referência do pacote do .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ru.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ru.xlf
index 44ac267b26..3f749fa66e 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ru.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
- Команда добавления ссылки на пакет .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.tr.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.tr.xlf
index 4d23a1adf7..3b3214f1c7 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.tr.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
- .NET Paket Başvurusu Ekleme Komutu
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hans.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hans.xlf
index ca7bbcbcaf..288e9561f5 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
- .NET 添加包引用命令
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hant.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hant.xlf
index 6db6cb99b6..320a7ccd82 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-package/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
- .NET 新增套件參考命令
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.cs.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.cs.xlf
index 6a0637d814..944be97085 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.cs.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.cs.xlf
@@ -1,8 +1,7 @@
-
+
- Příkaz rozhraní .NET pro přidání projektu do řešení
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.de.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.de.xlf
index 49dcdfeeb6..ed33e3f3da 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.de.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.de.xlf
@@ -1,8 +1,7 @@
-
+
- .NET-Befehl zum Hinzufügen eines Projekts zur Projektmappe
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.es.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.es.xlf
index 364fb3ab37..f9d1dab813 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.es.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.es.xlf
@@ -1,8 +1,7 @@
-
+
- Comando de .NET Agregar proyecto a solución
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.fr.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.fr.xlf
index 6985bde87a..2323b4ba99 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.fr.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.fr.xlf
@@ -1,8 +1,7 @@
-
+
- Commande .NET d'ajout de projet à une solution
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.it.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.it.xlf
index 37e8e19f72..9f5b6b257a 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.it.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.it.xlf
@@ -1,8 +1,7 @@
-
+
- Comando Aggiungi progetto a soluzione .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ja.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ja.xlf
index 450df2144d..7db8904d8c 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ja.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ja.xlf
@@ -1,8 +1,7 @@
-
+
- .NET Add Project to Solution コマンド
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ko.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ko.xlf
index c9f222f396..5b6e02c562 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ko.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ko.xlf
@@ -1,8 +1,7 @@
-
+
- .NET 솔루션에 프로젝트 추가 명령
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pl.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pl.xlf
index 78bb9b9e44..7c8e0049f8 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pl.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pl.xlf
@@ -1,8 +1,7 @@
-
+
- Polecenie dodawania projektu do rozwiązania dla platformy .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pt-BR.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pt-BR.xlf
index bbf7c437bb..1b3694bb4a 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pt-BR.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.pt-BR.xlf
@@ -1,8 +1,7 @@
-
+
- Comando Adicionar Projeto à Solução do .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ru.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ru.xlf
index 1c8a177941..ccb84c150b 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ru.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.ru.xlf
@@ -1,8 +1,7 @@
-
+
- Команда "Добавить проект в решение" .NET
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.tr.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.tr.xlf
index d2eb756813..ab0b0c18bf 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.tr.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.tr.xlf
@@ -1,8 +1,7 @@
-
+
- .NET Çözüme Proje Ekleme Komutu
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hans.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hans.xlf
index 40a34ef727..e49d0c2b16 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hans.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hans.xlf
@@ -1,8 +1,7 @@
-
+
- .NET 将项目添加到解决方案命令
diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hant.xlf b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hant.xlf
index 1a0ab36e76..b24ad1c7ff 100644
--- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hant.xlf
+++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/xlf/LocalizableStrings.zh-Hant.xlf
@@ -1,8 +1,7 @@
-
+
-