From 9abe5cd8abf3ffed0e0a3e97a1be224bbe95fcfd Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Thu, 28 Jan 2021 14:09:35 -0800 Subject: [PATCH 01/18] Fixup feeds --- NuGet.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NuGet.config b/NuGet.config index 2f3a4009c4..4dc3fb75d0 100644 --- a/NuGet.config +++ b/NuGet.config @@ -6,9 +6,9 @@ - + - + \ No newline at end of file From 68cc23d01f6df8e17b7698b482f834f1f352a04a Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Thu, 28 Jan 2021 14:09:35 -0800 Subject: [PATCH 02/18] Fixup feeds --- NuGet.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NuGet.config b/NuGet.config index 2f3a4009c4..4dc3fb75d0 100644 --- a/NuGet.config +++ b/NuGet.config @@ -6,9 +6,9 @@ - + - + \ No newline at end of file From 123e99e54aac05180b8866722e541059274c38b3 Mon Sep 17 00:00:00 2001 From: Buyaa Date: Wed, 16 Dec 2020 15:38:06 -0800 Subject: [PATCH 03/18] Fix localization failure (#4583) --- ...tibilityAnalyzerTests.GuardedCallsTests.cs | 4 +- .../PlatformCompatibilityAnalyzerTests.cs | 169 +++++++++++------- 2 files changed, 110 insertions(+), 63 deletions(-) diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.GuardedCallsTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.GuardedCallsTests.cs index 15731faeaa..3e744ba3eb 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.GuardedCallsTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.GuardedCallsTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; +using System.Globalization; using System.Threading.Tasks; using Test.Utilities; using Xunit; @@ -1030,7 +1031,8 @@ public static void WindowsSpecificApi() await VerifyAnalyzerAsyncCs(source, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(0). - WithArguments("Some.WindowsSpecificApi()", "'windows' 10.0 and later", "'windows' all versions")); + WithArguments("Some.WindowsSpecificApi()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"))); } [Fact] diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs index 0171bb50f5..ac3d1fd201 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; +using System.Globalization; using System.Threading.Tasks; using Microsoft.CodeAnalysis.Testing; using Test.Utilities; @@ -1586,13 +1587,13 @@ public static void UnsupportedOnWindowsUntilWindows11() { } } " + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(0).WithArguments("Target.SupportedOnWindows()", "'windows'", ""), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(0).WithArguments("Target.SupportedOnWindows()", "'windows'"), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(1).WithArguments("Target.SupportedOnBrowser()", "'browser'", "'browser'"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(2).WithArguments("Target.SupportedOnWindowsAndUnsupportedOnBrowser()", "'windows'", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(3).WithArguments("Target.UnsupportedOnWindows()", "'windows'", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(4).WithArguments("Target.UnsupportedOnWindows11()", "'windows' 11.0 and later", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(5).WithArguments("Target.UnsupportedOnWindowsAndBrowser()", "'windows'", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(6).WithArguments("Target.UnsupportedOnWindowsUntilWindows11()", "'windows' 11.0 and later", "")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(2).WithArguments("Target.SupportedOnWindowsAndUnsupportedOnBrowser()", "'windows'"), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(3).WithArguments("Target.UnsupportedOnWindows()", "'windows'"), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(4).WithArguments("Target.UnsupportedOnWindows11()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(5).WithArguments("Target.UnsupportedOnWindowsAndBrowser()", "'windows'"), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(6).WithArguments("Target.UnsupportedOnWindowsUntilWindows11()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0"))); } [Fact] @@ -1967,9 +1968,11 @@ public void M2() { await VerifyAnalyzerAsyncCs(source, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithSpan(9, 32, 9, 54). - WithArguments("OsDependentClass", $"'{platform}' {version} and later", $"'{suppressingPlatform}' {suppressingVersion} and later"), + WithArguments("OsDependentClass", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, suppressingPlatform, suppressingVersion)), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithSpan(10, 9, 10, 17). - WithArguments("OsDependentClass.M2()", $"'{platform}' {version} and later", $"'{suppressingPlatform}' {suppressingVersion} and later")); + WithArguments("OsDependentClass.M2()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, suppressingPlatform, suppressingVersion))); } else { @@ -2024,16 +2027,18 @@ public void M2() if (platform.Equals(suppressingVersion, System.StringComparison.OrdinalIgnoreCase)) { await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(9, 32). - WithArguments("OsDependentClass", $"'{platform}' {version} and later", $"'{suppressingPlatform}' {suppressingVersion} and before"), + WithArguments("OsDependentClass", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, suppressingPlatform, suppressingVersion)), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(10, 9). - WithArguments("OsDependentClass.M2()", $"'{platform}' {version} and later", $"'{suppressingPlatform}' {suppressingVersion} and before")); + WithArguments("OsDependentClass.M2()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, suppressingPlatform, suppressingVersion))); } else { await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(9, 32). - WithArguments("OsDependentClass", $"'{platform}' {version} and later", string.Empty), + WithArguments("OsDependentClass", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version)), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(10, 9). - WithArguments("OsDependentClass.M2()", $"'{platform}' {version} and later", string.Empty)); + WithArguments("OsDependentClass.M2()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, platform, version))); } } else @@ -2079,7 +2084,8 @@ public static void LinuxMethod() { } await VerifyAnalyzerAsyncCs(source, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable). WithLocation(11, 9).WithArguments("C.StaticClass.LinuxMethod()", "'linux'", "'Linux'"), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable). - WithLocation(12, 9).WithArguments("C.StaticClass.LinuxVersionedMethod()", "'linux' 4.8 and later", "'Linux' all versions")); + WithLocation(12, 9).WithArguments("C.StaticClass.LinuxVersionedMethod()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "linux", "4.8"), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "Linux"))); } [Fact] @@ -2146,11 +2152,13 @@ public void DoesNotWorkOnWindows() " + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(18, 9). - WithArguments("C.DoesNotWorkOnWindows()", "'windows' 10.0.1903 and later", "'windows' 10.0.2000 and before"), + WithArguments("C.DoesNotWorkOnWindows()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0.1903"), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0.2000")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(31, 9). - WithArguments("C.DoesNotWorkOnWindows()", "'windows' from version 10.0.1903 to 10.0.2004", ""), + WithArguments("C.DoesNotWorkOnWindows()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0.1903", "10.0.2004")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(38, 9). - WithArguments("C.DoesNotWorkOnWindows()", "'windows' 10.0.2004 and later", "'windows' 10.0.2000 and later")); + WithArguments("C.DoesNotWorkOnWindows()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0.2004"), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0.2000"))); } [Fact] @@ -2207,11 +2215,12 @@ public void WindowsOnlyUnsupportedFrom2004() " + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(0). - WithArguments("C.WindowsOnlyUnsupportedFrom2004()", "'windows' 10.0.2004 and before", "'Linux'"), + WithArguments("C.WindowsOnlyUnsupportedFrom2004()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0.2004"), "'Linux'"), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(1). - WithArguments("C.WindowsOnlyUnsupportedFrom2004()", "'windows' 10.0.2004 and before", ""), + WithArguments("C.WindowsOnlyUnsupportedFrom2004()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0.2004")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(2). - WithArguments("C.WindowsOnlyUnsupportedFrom2004()", "'windows' 10.0.2004 and later", "'windows' 10.0.2000 and later")); + WithArguments("C.WindowsOnlyUnsupportedFrom2004()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0.2004"), + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0.2000"))); } [Fact] @@ -2305,17 +2314,17 @@ await VerifyAnalyzerAsyncCs(source, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(0). WithArguments("TypeWithoutAttributes.FunctionSupportedOnWindows()", "'windows'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(1). - WithArguments("TypeWithoutAttributes.FunctionSupportedOnWindows10()", "'windows' 10.0 and later", ""), + WithArguments("TypeWithoutAttributes.FunctionSupportedOnWindows10()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0", "")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(2). WithArguments("TypeSupportedOnWindows", "'windows'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(3). WithArguments("TypeSupportedOnWindows.FunctionSupportedOnBrowser()", "'windows'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(4). - WithArguments("TypeSupportedOnWindows.FunctionSupportedOnWindows11AndBrowser()", "'windows' 11.0 and later", ""), + WithArguments("TypeSupportedOnWindows.FunctionSupportedOnWindows11AndBrowser()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0", "")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(5). WithArguments("TypeSupportedOnBrowser", "'browser'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(6). - WithArguments("TypeSupportedOnWindows10.FunctionSupportedOnBrowser()", "'windows' 10.0 and later", "")); + WithArguments("TypeSupportedOnWindows10.FunctionSupportedOnBrowser()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0", ""))); } [Fact] @@ -2373,15 +2382,18 @@ await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(0). WithArguments("TypeUnsupportedOnBrowser", "'browser'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(1). - WithArguments("TypeUnsupportedOnWindows10", "'windows' 10.0 and later", ""), + WithArguments("TypeUnsupportedOnWindows10", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(2). - WithArguments("TypeUnsupportedOnWindows10.FunctionUnsupportedOnWindows11()", "'windows' 10.0 and later", ""), + WithArguments("TypeUnsupportedOnWindows10.FunctionUnsupportedOnWindows11()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(3). - WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11()", "'windows' 11.0 and later", ""), + WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0"), ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(4). - WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11UnsupportedOnWindows12()", "'windows' from version 11.0 to 12.0", ""), + WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11UnsupportedOnWindows12()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "11.0", "12.0")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(5). - WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11UnsupportedOnWindows12SupportedOnWindows13()", "'windows' from version 11.0 to 12.0", ""), + WithArguments("TypeWithoutAttributes.FunctionUnsupportedOnWindowsSupportedOnWindows11UnsupportedOnWindows12SupportedOnWindows13()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "11.0", "12.0")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(6). WithArguments("TypeUnsupportedOnWindows", "'windows'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(7). @@ -2395,11 +2407,13 @@ await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(11). WithArguments("TypeUnsupportedOnBrowser.FunctionSupportedOnBrowser()", "'browser'", ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(12). - WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11", "'windows' 11.0 and later", ""), + WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0"), ""), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(13). - WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11.FunctionUnsupportedOnWindows12()", "'windows' 11.0 and later", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(14). - WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11.FunctionUnsupportedOnWindows12SupportedOnWindows13()", "'windows' 11.0 and later", "")); + WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11.FunctionUnsupportedOnWindows12()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(14).WithArguments("TypeUnsupportedOnWindowsSupportedOnWindows11.FunctionUnsupportedOnWindows12SupportedOnWindows13()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "11.0"))); } [Fact] @@ -2425,12 +2439,12 @@ public void CrossPlatformTest() await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", "'windows'", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", "'windows' 10.0 and later", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", "'windows' from version 8.0 to 10.0", ""), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsAllPlatforms).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0", "")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsAllPlatforms).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "8.0", "10.0")), VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(3).WithArguments("AllowList.WindowsOnly()", "'windows'", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(4).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(5).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and before", ""), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(6).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(4).WithArguments("AllowList.Windows10Only()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0", "")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(5).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0", "")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsAllPlatforms).WithLocation(6).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"))); } [Fact] @@ -2457,11 +2471,16 @@ public void SupportedWindowsTest() await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", "'windows'", "'windows'"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", "'windows' 10.0 and later", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", "'windows' from version 8.0 to 10.0", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and later", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(5).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "'windows' all versions")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "8.0", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10Only()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(5).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"))); } [Fact] @@ -2487,12 +2506,18 @@ public void SupportedWindows10Test() " + AllowDenyListTestClasses + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", "'windows' all versions", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", "'windows' 10.0 and later", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", "'windows' 10.0 and later", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and later", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(5).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "'windows' 9.0 and later")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedWindows10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(2).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10Only()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(5).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0"))); } [Fact] @@ -2532,14 +2557,22 @@ public void SupportedWindows10Unsupported11Test() " + AllowDenyListTestClasses + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", "'windows' all versions", "'windows' 10.0 and before"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", "'windows' 8.0 and later", "'windows' 10.0 and before"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(2).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", "'windows' 10.0 and before"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "'windows' 10.0 and before"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("DenyList.UnsupportedWindows()", "'windows' all versions", "'windows' from version 10.0 to 11.0"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(5).WithArguments("DenyList.UnsupportedWindows10()", "'windows' 10.0 and later", "'windows' from version 10.0 to 11.0"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(6).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", "'windows' 10.0 and later", "'windows' from version 10.0 to 11.0"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(7).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and later", "'windows' from version 10.0 to 11.0")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(0).WithArguments("DenyList.UnsupportedWindows()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.SupportedCsReachable).WithLocation(1).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "8.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(2).WithArguments("AllowList.Windows10Only()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsReachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(4).WithArguments("DenyList.UnsupportedWindows()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(5).WithArguments("DenyList.UnsupportedWindows10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(6).WithArguments("DenyList.UnsupportedSupportedWindows8To10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.UnsupportedCsReachable).WithLocation(7).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"))); } [Fact] @@ -2566,9 +2599,12 @@ public void UnsupportedWindowsTest() await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(0).WithArguments("AllowList.WindowsOnly()", "'windows'", "'windows'"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(1).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(2).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and before", "'windows' all versions"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "'windows' all versions")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(1).WithArguments("AllowList.Windows10Only()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(2).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", string.Format(CultureInfo.InvariantCulture, + MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"))); } [Fact] @@ -2594,10 +2630,19 @@ public void UnsupportedWindows9Test() " + AllowDenyListTestClasses + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms, - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(0).WithArguments("AllowList.WindowsOnly()", "'windows' all versions", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(1).WithArguments("AllowList.Windows10Only()", "'windows' 10.0 and later", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(2).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", "'windows' 10.0 and before", "'windows' 9.0 and later"), - VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", "'windows' from version 10.0 to 11.0", "'windows' 9.0 and later")); + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(0).WithArguments("AllowList.WindowsOnly()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityAllVersions, "windows"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(1).WithArguments("AllowList.Windows10Only()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(2).WithArguments("AllowList.WindowsOnlyUnsupportedFrom10()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndBefore, "windows", "10.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0")), + VerifyCS.Diagnostic(PlatformCompatibilityAnalyzer.OnlySupportedCsUnreachable).WithLocation(3).WithArguments("AllowList.Windows10OnlyUnsupportedFrom11()", + GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityFromVersionToVersion, "windows", "10.0", "11.0"), GetFormattedString(MicrosoftNetCoreAnalyzersResources.PlatformCompatibilityVersionAndLater, "windows", "9.0"))); + } + + private string GetFormattedString(string resource, params string[] args) + { + return string.Format(CultureInfo.InvariantCulture, resource, args); } private static VerifyCS.Test PopulateTestCs(string sourceCode, params DiagnosticResult[] expected) From 5bc916c8dd09fcaf7b39030bd2a417a01f7e82cd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 21:20:22 +0000 Subject: [PATCH 04/18] Update dependencies from https://github.com/dotnet/arcade build 20210212.3 (#4843) [release/5.0.1xx] Update dependencies from dotnet/arcade --- NuGet.config | 2 +- eng/Version.Details.xml | 4 +- eng/common/internal-feed-operations.ps1 | 2 - eng/common/internal-feed-operations.sh | 2 - eng/common/sdl/init-sdl.ps1 | 13 +------ eng/common/sdl/packages.config | 2 +- eng/common/templates/job/execute-sdl.yml | 2 +- .../templates/post-build/post-build.yml | 37 +++++++++++++++++-- global.json | 2 +- 9 files changed, 41 insertions(+), 25 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4dc3fb75d0..6ff54a6347 100644 --- a/NuGet.config +++ b/NuGet.config @@ -11,4 +11,4 @@ - \ No newline at end of file + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 67da119feb..21253dbb9a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,9 +3,9 @@ - + https://github.com/dotnet/arcade - f73f462f75b5fa21805f0b3c477b11277c5da556 + d8c68c834bcca3f721ad1550404807e301ba7afe diff --git a/eng/common/internal-feed-operations.ps1 b/eng/common/internal-feed-operations.ps1 index b8f6529fdc..418c09930c 100644 --- a/eng/common/internal-feed-operations.ps1 +++ b/eng/common/internal-feed-operations.ps1 @@ -63,8 +63,6 @@ function SetupCredProvider { } if (($endpoints | Measure-Object).Count -gt 0) { - # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")] - # Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}' $endpointCredentials = @{endpointCredentials=$endpoints} | ConvertTo-Json -Compress # Create the environment variables the AzDo way diff --git a/eng/common/internal-feed-operations.sh b/eng/common/internal-feed-operations.sh index 9ed225e7e5..343054b3ae 100644 --- a/eng/common/internal-feed-operations.sh +++ b/eng/common/internal-feed-operations.sh @@ -62,8 +62,6 @@ function SetupCredProvider { endpoints+=']' if [ ${#endpoints} -gt 2 ]; then - # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")] - # Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}' local endpointCredentials="{\"endpointCredentials\": "$endpoints"}" echo "##vso[task.setvariable variable=VSS_NUGET_EXTERNAL_FEED_ENDPOINTS]$endpointCredentials" diff --git a/eng/common/sdl/init-sdl.ps1 b/eng/common/sdl/init-sdl.ps1 index a68bf0b88e..bb6a429711 100644 --- a/eng/common/sdl/init-sdl.ps1 +++ b/eng/common/sdl/init-sdl.ps1 @@ -29,18 +29,7 @@ $zipFile = "$WorkingDirectory/gdn.zip" Add-Type -AssemblyName System.IO.Compression.FileSystem $gdnFolder = (Join-Path $WorkingDirectory '.gdn') -try { - # We try to download the zip; if the request fails (e.g. the file doesn't exist), we catch it and init guardian instead - Write-Host 'Downloading gdn folder from internal config repostiory...' - Invoke-WebRequest -Headers @{ "Accept"="application/zip"; "Authorization"="Basic $encodedPat" } -Uri $uri -OutFile $zipFile - if (Test-Path $gdnFolder) { - # Remove the gdn folder if it exists (it shouldn't unless there's too much caching; this is just in case) - Remove-Item -Force -Recurse $gdnFolder - } - [System.IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $WorkingDirectory) - Write-Host $gdnFolder - ExitWithExitCode 0 -} catch [System.Net.WebException] { } # Catch and ignore webexception + try { # if the folder does not exist, we'll do a guardian init and push it to the remote repository Write-Host 'Initializing Guardian...' diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config index 968b39bef5..3bd8b29ebd 100644 --- a/eng/common/sdl/packages.config +++ b/eng/common/sdl/packages.config @@ -1,4 +1,4 @@ - + diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml index c64c4f5686..53c100222b 100644 --- a/eng/common/templates/job/execute-sdl.yml +++ b/eng/common/templates/job/execute-sdl.yml @@ -83,7 +83,7 @@ jobs: continueOnError: ${{ parameters.sdlContinueOnError }} - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: eng/common/sdl/execute-all-sdl-tools.ps1 - -GuardianPackageName Microsoft.Guardian.Cli.win10-x64.0.20.1 + -GuardianPackageName Microsoft.Guardian.Cli.0.53.3 -NugetPackageDirectory $(Build.SourcesDirectory)\.packages -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) ${{ parameters.additionalParameters }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 761fb1a29c..1b0af40d52 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -65,7 +65,9 @@ parameters: VS167ChannelId: 1011 VS168ChannelId: 1154 VSMasterChannelId: 1012 - + VS169ChannelId: 1473 + VS1610ChannelId: 1692 + stages: - ${{ if or(and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')), eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: - stage: Validate @@ -94,8 +96,7 @@ stages: inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 arguments: -PromoteToChannels "$(TargetChannels)" - -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} - + -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}},${{parameters.VS169ChannelId}},${{parameters.VS1610ChannelId}} - job: displayName: NuGet Validation dependsOn: setupMaestroVars @@ -608,3 +609,33 @@ stages: transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + + - template: \eng\common\templates\post-build\channels\generic-public-channel.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + stageName: 'VS_16_9_Publishing' + channelName: 'VS 16.9' + channelId: ${{ parameters.VS169ChannelId }} + transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' + shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + + - template: \eng\common\templates\post-build\channels\generic-public-channel.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + stageName: 'VS_16_10_Publishing' + channelName: 'VS 16.10' + channelId: ${{ parameters.VS1610ChannelId }} + transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' + shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' diff --git a/global.json b/global.json index 1e8e97dc18..4bf8a1fc36 100644 --- a/global.json +++ b/global.json @@ -17,6 +17,6 @@ "rollForward": "patch" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21063.3" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21112.3" } } From ed46154171c17548a3076ccac77ca3e6937f5e2b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 12 Feb 2021 21:33:59 +0000 Subject: [PATCH 05/18] Update dependencies from https://github.com/dotnet/arcade build 20210212.3 (#4844) [release/5.0.2xx] Update dependencies from dotnet/arcade --- NuGet.config | 2 +- eng/Version.Details.xml | 4 +- eng/common/internal-feed-operations.ps1 | 2 - eng/common/internal-feed-operations.sh | 2 - eng/common/sdl/init-sdl.ps1 | 13 +------ eng/common/sdl/packages.config | 2 +- eng/common/templates/job/execute-sdl.yml | 2 +- .../templates/post-build/post-build.yml | 37 +++++++++++++++++-- global.json | 2 +- 9 files changed, 41 insertions(+), 25 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4dc3fb75d0..6ff54a6347 100644 --- a/NuGet.config +++ b/NuGet.config @@ -11,4 +11,4 @@ - \ No newline at end of file + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 67da119feb..21253dbb9a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,9 +3,9 @@ - + https://github.com/dotnet/arcade - f73f462f75b5fa21805f0b3c477b11277c5da556 + d8c68c834bcca3f721ad1550404807e301ba7afe diff --git a/eng/common/internal-feed-operations.ps1 b/eng/common/internal-feed-operations.ps1 index b8f6529fdc..418c09930c 100644 --- a/eng/common/internal-feed-operations.ps1 +++ b/eng/common/internal-feed-operations.ps1 @@ -63,8 +63,6 @@ function SetupCredProvider { } if (($endpoints | Measure-Object).Count -gt 0) { - # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")] - # Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}' $endpointCredentials = @{endpointCredentials=$endpoints} | ConvertTo-Json -Compress # Create the environment variables the AzDo way diff --git a/eng/common/internal-feed-operations.sh b/eng/common/internal-feed-operations.sh index 9ed225e7e5..343054b3ae 100644 --- a/eng/common/internal-feed-operations.sh +++ b/eng/common/internal-feed-operations.sh @@ -62,8 +62,6 @@ function SetupCredProvider { endpoints+=']' if [ ${#endpoints} -gt 2 ]; then - # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")] - # Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}' local endpointCredentials="{\"endpointCredentials\": "$endpoints"}" echo "##vso[task.setvariable variable=VSS_NUGET_EXTERNAL_FEED_ENDPOINTS]$endpointCredentials" diff --git a/eng/common/sdl/init-sdl.ps1 b/eng/common/sdl/init-sdl.ps1 index a68bf0b88e..bb6a429711 100644 --- a/eng/common/sdl/init-sdl.ps1 +++ b/eng/common/sdl/init-sdl.ps1 @@ -29,18 +29,7 @@ $zipFile = "$WorkingDirectory/gdn.zip" Add-Type -AssemblyName System.IO.Compression.FileSystem $gdnFolder = (Join-Path $WorkingDirectory '.gdn') -try { - # We try to download the zip; if the request fails (e.g. the file doesn't exist), we catch it and init guardian instead - Write-Host 'Downloading gdn folder from internal config repostiory...' - Invoke-WebRequest -Headers @{ "Accept"="application/zip"; "Authorization"="Basic $encodedPat" } -Uri $uri -OutFile $zipFile - if (Test-Path $gdnFolder) { - # Remove the gdn folder if it exists (it shouldn't unless there's too much caching; this is just in case) - Remove-Item -Force -Recurse $gdnFolder - } - [System.IO.Compression.ZipFile]::ExtractToDirectory($zipFile, $WorkingDirectory) - Write-Host $gdnFolder - ExitWithExitCode 0 -} catch [System.Net.WebException] { } # Catch and ignore webexception + try { # if the folder does not exist, we'll do a guardian init and push it to the remote repository Write-Host 'Initializing Guardian...' diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config index 968b39bef5..3bd8b29ebd 100644 --- a/eng/common/sdl/packages.config +++ b/eng/common/sdl/packages.config @@ -1,4 +1,4 @@ - + diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml index c64c4f5686..53c100222b 100644 --- a/eng/common/templates/job/execute-sdl.yml +++ b/eng/common/templates/job/execute-sdl.yml @@ -83,7 +83,7 @@ jobs: continueOnError: ${{ parameters.sdlContinueOnError }} - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: eng/common/sdl/execute-all-sdl-tools.ps1 - -GuardianPackageName Microsoft.Guardian.Cli.win10-x64.0.20.1 + -GuardianPackageName Microsoft.Guardian.Cli.0.53.3 -NugetPackageDirectory $(Build.SourcesDirectory)\.packages -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) ${{ parameters.additionalParameters }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 761fb1a29c..1b0af40d52 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -65,7 +65,9 @@ parameters: VS167ChannelId: 1011 VS168ChannelId: 1154 VSMasterChannelId: 1012 - + VS169ChannelId: 1473 + VS1610ChannelId: 1692 + stages: - ${{ if or(and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')), eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: - stage: Validate @@ -94,8 +96,7 @@ stages: inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 arguments: -PromoteToChannels "$(TargetChannels)" - -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} - + -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}},${{parameters.VS169ChannelId}},${{parameters.VS1610ChannelId}} - job: displayName: NuGet Validation dependsOn: setupMaestroVars @@ -608,3 +609,33 @@ stages: transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + + - template: \eng\common\templates\post-build\channels\generic-public-channel.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + stageName: 'VS_16_9_Publishing' + channelName: 'VS 16.9' + channelId: ${{ parameters.VS169ChannelId }} + transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' + shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + + - template: \eng\common\templates\post-build\channels\generic-public-channel.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + stageName: 'VS_16_10_Publishing' + channelName: 'VS 16.10' + channelId: ${{ parameters.VS1610ChannelId }} + transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json' + shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' diff --git a/global.json b/global.json index 1e8e97dc18..4bf8a1fc36 100644 --- a/global.json +++ b/global.json @@ -17,6 +17,6 @@ "rollForward": "patch" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21063.3" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21112.3" } } From 31d239c33037787ec38119ca8f496840b9dbdd9c Mon Sep 17 00:00:00 2001 From: Cristiano Suzuki Date: Tue, 16 Feb 2021 09:46:11 -0800 Subject: [PATCH 06/18] Loc update (#4805) Co-authored-by: Cristiano Suzuki --- .../CodeAnalysisDiagnosticsResources.de.xlf | 2 +- .../CodeAnalysisDiagnosticsResources.fr.xlf | 6 +-- .../CodeAnalysisDiagnosticsResources.it.xlf | 2 +- .../CodeAnalysisDiagnosticsResources.ja.xlf | 6 +-- .../CodeAnalysisDiagnosticsResources.tr.xlf | 2 +- ...deAnalysisDiagnosticsResources.zh-Hans.xlf | 6 +-- ...deAnalysisDiagnosticsResources.zh-Hant.xlf | 4 +- ...rosoftCodeQualityAnalyzersResources.ja.xlf | 6 +-- ...oftCodeQualityAnalyzersResources.pt-BR.xlf | 12 ++--- ...rosoftCodeQualityAnalyzersResources.ru.xlf | 4 +- ...rosoftCodeQualityAnalyzersResources.tr.xlf | 2 +- ...tCodeQualityAnalyzersResources.zh-Hans.xlf | 8 ++-- ...tCodeQualityAnalyzersResources.zh-Hant.xlf | 6 +-- .../MicrosoftNetCoreAnalyzersResources.cs.xlf | 28 +++++------ .../MicrosoftNetCoreAnalyzersResources.de.xlf | 46 +++++++++---------- .../MicrosoftNetCoreAnalyzersResources.es.xlf | 32 ++++++------- .../MicrosoftNetCoreAnalyzersResources.fr.xlf | 28 +++++------ .../MicrosoftNetCoreAnalyzersResources.it.xlf | 28 +++++------ .../MicrosoftNetCoreAnalyzersResources.ja.xlf | 38 +++++++-------- .../MicrosoftNetCoreAnalyzersResources.ko.xlf | 28 +++++------ .../MicrosoftNetCoreAnalyzersResources.pl.xlf | 28 +++++------ ...crosoftNetCoreAnalyzersResources.pt-BR.xlf | 30 ++++++------ .../MicrosoftNetCoreAnalyzersResources.ru.xlf | 28 +++++------ .../MicrosoftNetCoreAnalyzersResources.tr.xlf | 32 ++++++------- ...osoftNetCoreAnalyzersResources.zh-Hans.xlf | 32 ++++++------- ...osoftNetCoreAnalyzersResources.zh-Hant.xlf | 28 +++++------ ...osoftNetFrameworkAnalyzersResources.ko.xlf | 2 +- .../CSharp/xlf/AnalyzersResources.zh-Hans.xlf | 2 +- .../xlf/PublicApiAnalyzerResources.pt-BR.xlf | 6 +-- .../xlf/PublicApiAnalyzerResources.tr.xlf | 2 +- ...RoslynDiagnosticsAnalyzersResources.ja.xlf | 12 ++--- ...RoslynDiagnosticsAnalyzersResources.ru.xlf | 4 +- ...RoslynDiagnosticsAnalyzersResources.tr.xlf | 6 +-- 33 files changed, 253 insertions(+), 253 deletions(-) diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.de.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.de.xlf index dd3066de3f..b0c17b8579 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.de.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.de.xlf @@ -89,7 +89,7 @@ The diagnostic title should not contain a period, nor any line return character, nor any leading or trailing whitespaces - Der Diagnosetitel darf keinen Satzendepunkt, kein Zeilenvorschubzeichen, keine führenden und keine nachfolgenden Leerzeichen enthalten. + Der Diagnosetitel darf weder einen Punkt, noch ein Zeilenumbruchzeichen, noch führende und nachfolgende Leerzeichen enthalten. diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.fr.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.fr.xlf index 60a33124f4..c356670d71 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.fr.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.fr.xlf @@ -264,7 +264,7 @@ Provide non-null 'customTags' value to diagnostic descriptor constructor - Fournissez une valeur 'customTags' non null au constructeur de descripteur de diagnostic + Fournissez une valeur 'customTags' non-null au constructeur de descripteur de diagnostic @@ -487,12 +487,12 @@ Provide an explicit argument for optional parameter '{0}', which is non-null and unique for each kind of code action created by this fixer - Fournissez un argument explicite pour le paramètre optionnel '{0}', qui soit non-Null et unique pour chaque genre d'action de code créée par ce correcteur + Fournissez un argument explicite pour le paramètre optionnel '{0}', qui soit non-null et unique pour chaque genre d'action de code créée par ce correcteur Create code actions should have a unique EquivalenceKey for FixAll occurrences support - Les actions de code créées doivent avoir un EquivalenceKey unique pour la prise en charge des occurrences de FixAll + Les actions de création de code doivent avoir un EquivalenceKey unique pour la prise en charge des occurrences de FixAll diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.it.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.it.xlf index 93fce3ef16..aa0909bdd5 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.it.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.it.xlf @@ -209,7 +209,7 @@ Recommend adding language support to diagnostic analyzer - Consigliare l'aggiunta del supporto per la lingua all'analizzatore diagnostico + Consigliata l'aggiunta del supporto per la lingua all'analizzatore diagnostico diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf index 44f4f94ed0..df17d5fd57 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf @@ -134,7 +134,7 @@ Enable analyzer release tracking for the analyzer project containing rule '{0}' - 規則 '{0}' を含むアナライザー プロジェクトのアナライザー リリース追跡を有効にします + 規則 '{0}' を含むアナライザー プロジェクトのアナライザー リリース追跡を有効にしてください @@ -269,7 +269,7 @@ Remove duplicate entries for diagnostic ID between analyzer releases. - アナライザー リリース間で診断 ID の重複しているエントリを削除します。 + アナライザー リリース間で診断 ID の重複しているエントリを削除してください。 @@ -279,7 +279,7 @@ Remove duplicate entries for diagnostic ID between analyzer releases. - アナライザー リリース間で診断 ID の重複しているエントリを削除します。 + アナライザー リリース間で診断 ID の重複しているエントリを削除してください。 diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.tr.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.tr.xlf index 148e75c157..f7d5aad456 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.tr.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.tr.xlf @@ -477,7 +477,7 @@ Only internal implementations of this interface are allowed - Bu arabirimin yalnızca iç uygulamalarına izin verilir + Bu arabirimin yalnızca içeride yapılan uygulamalarına izin verilir diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hans.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hans.xlf index 4f289b3a18..a6fce87300 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hans.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hans.xlf @@ -349,7 +349,7 @@ Unsupported SymbolKind argument when registering a symbol analyzer action - 注册符号分析器操作时不支持 SymbolKind 参数 + 注册符号分析器操作时使用了不受支持的 SymbolKind 实参 @@ -369,7 +369,7 @@ Type argument '{0}' for type parameter '{1}' of method '{2}' is not a SyntaxKind enum - 对方法“{2}”的类型形参“{1}”而言,类型实参“{0}”不是 SyntaxKind 枚举 + 方法“{2}”的类型形参“{1}”的类型实参“{0}”不是 SyntaxKind 枚举 @@ -492,7 +492,7 @@ Create code actions should have a unique EquivalenceKey for FixAll occurrences support - 创建代码操作应具备 FixAll 事件支持的唯一 EquivalenceKey + 创建代码操作应具备唯一 EquivalenceKey,以支持 FixAll 事件 diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hant.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hant.xlf index 28b79278a7..96b9b939b5 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hant.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.zh-Hant.xlf @@ -349,7 +349,7 @@ Unsupported SymbolKind argument when registering a symbol analyzer action - 註冊符號分析器動作時,不支援 SymbolKind 引數不受支援 + 註冊符號分析器動作時不支援 SymbolKind 引數 @@ -408,7 +408,7 @@ 2. If required, define and initialize state in the start action. 3. Register at least one non-end action that refers to this state in the start action. If no such action is necessary, consider replacing the start action with a non-start action. For example, a CodeBlockStartAction with no registered actions or only a registered CodeBlockEndAction should be replaced with a CodeBlockAction. 4. If required, register an end action to report diagnostics based on the final state. - 分析器起始動作會對指定的程式碼單位 (例如程式碼區塊、編譯等) 執行具狀態的分析。請仔細設計,以達到在沒有流失記憶體的情況下,有效率地執行分析器。使用下列方針撰寫這類分析器: + 分析器起始動作會對指定的程式碼單位 (例如程式碼區塊、編譯等) 執行具狀態的分析。請仔細設計,以便有效執行分析器而不流失記憶體。使用下列方針撰寫這類分析器: 1.為註冊的起始動作定義新範圍,可能會有私用巢狀類別以分析每個程式碼單位。 2.如有必要,請定義並初始化起始動作中的狀態。 3.至少註冊一個非結束動作,其參考起始動作中的這個狀態。如果不需要這類動作,請考慮以非起始動作取代起始動作。例如,CodeBlockStartAction 沒有任何註冊動作或只有一個註冊的 CodeBlockEndAction 時,應以 CodeBlockAction 取代。 diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf index e1b3b3a726..685bc0a92c 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf @@ -104,7 +104,7 @@ Modify '{0}' to catch a more specific allowed exception type, or rethrow the exception - '{0}' を変更してより具体的な許可された例外の種類をさらにキャッチするか、例外を再スローします + '{0}' を変更してより具体的な許可された例外の種類をキャッチするか、例外を再スローしてください @@ -279,7 +279,7 @@ Event names should describe the action that raises the event. To name related events that are raised in a specific sequence, use the present or past tense to indicate the relative position in the sequence of actions. For example, when naming a pair of events that is raised when closing a resource, you might name it 'Closing' and 'Closed', instead of 'BeforeClose' and 'AfterClose'. - イベント名は、イベントを発生させるアクションを説明するものにする必要があります。特定のシーケンスで発生する関連イベントに名前を付けるには、現在形または過去形を使用して、アクションのシーケンスの相対的な位置を示します。たとえば、リソースを閉じるときに発生するイベントのペアに名前を付けるときには、'BeforeClose' および 'AfterClose' の代わりに 'Closing' と 'Closed' という名前を付けることができます。 + イベント名は、イベントを発生させるアクションを説明するものにする必要があります。特定のシーケンスで発生する関連イベントに名前を付けるには、現在形または過去形を使用して、アクションのシーケンスにおける相対的な位置を示します。たとえば、リソースを閉じるときに発生するイベントのペアに名前を付けるときには、'BeforeClose' および 'AfterClose' の代わりに 'Closing' と 'Closed' という名前を付けることができます。 @@ -1379,7 +1379,7 @@ Replace the term '{0}' in assembly name {1} with the preferred alternate '{2}' - アセンブリ名 {1} の用語 '{0}' を適切な用語 '{2}' に置き換えてください + アセンブリ名 {1} の用語 '{0}' を適切なもの '{2}' に置き換えてください diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf index 5666f29d7a..12b869a369 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf @@ -144,7 +144,7 @@ This rule assumes that an enumeration member that has a name that contains "reserved" is not currently used but is a placeholder to be renamed or removed in a future version. Renaming or removing a member is a breaking change. - Esta regra considera que um membro de enumeração com um nome contendo "reservado" não está sendo usado no momento, mas é um espaço reservado a ser renomeado ou removido em uma versão futura. A renomeação ou a remoção de um membro é uma alteração da falha. + Esta regra considera que um membro de enumeração com um nome contendo "reservado" não está sendo usado no momento, mas é um espaço reservado a ser renomeado ou removido em uma versão futura. A renomeação ou a remoção de um membro é uma alteração interruptiva. @@ -529,7 +529,7 @@ Make '{0}' sealed (a breaking change if this class has previously shipped), implement the method non-explicitly, or implement a new method that exposes the functionality of '{1}' and is visible to derived classes - Torne o '{0}' selado (uma alteração da falha se esta classe foi enviada anteriormente), implemente o método de modo não explícito ou implemente um novo método que expõe a funcionalidade de '{1}' e é visível para todas as classes derivadas + Torne o '{0}' selado (uma alteração interruptiva se esta classe foi enviada anteriormente), implemente o método de modo não explícito ou implemente um novo método que expõe a funcionalidade de '{1}' e é visível para todas as classes derivadas @@ -1249,7 +1249,7 @@ Either replace the suffix '{0}' in type name {1} with the suggested numeric alternate '2' or provide a more meaningful suffix that distinguishes it from the type it replaces - Substitua o sufixo '{0}' no nome de tipo {1} pela alternativa numérica sugerida '2' ou forneça um sufixo mais significativo que o distinga do tipo que ele substitui + Substitua o sufixo '{0}' no nome de tipo {1} pela alternativa numérica sugerida '2' ou forneça um sufixo mais significativo que o diferencie do tipo que ele substitui @@ -1424,7 +1424,7 @@ Replace the term '{0}' in namespace name '{1}' with an appropriate alternate or remove it entirely - Substitua o termo '{0}' no nome de namespace '{1}' por uma alternativa apropriada ou remova-o inteiramente + Substitua o termo '{0}' no nome do namespace '{1}' por uma alternativa apropriada ou remova-o inteiramente @@ -1439,7 +1439,7 @@ On type {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - No tipo {0}, substitua o termo '{1}' no nome de parâmetro de tipo genérico {2} por uma alternativa apropriada ou remova-o inteiramente + No tipo {0}, substitua o termo '{1}' no nome do parâmetro de tipo genérico {2} por uma alternativa apropriada ou remova-o inteiramente @@ -1844,7 +1844,7 @@ '{0}' has an object hierarchy '{1}' levels deep within the defining module. If possible, eliminate base classes within the hierarchy to decrease its hierarchy level below '{2}': '{3}'. - '{0}' tem uma hierarquia de objetos com '{1}' níveis no módulo de definição. Se possível, elimine as classes base na hierarquia para diminuir o nível de hierarquia abaixo '{2}': '{3}'. + '{0}' tem uma hierarquia de objetos com profundidade de '{1}' níveis no módulo de definição. Se possível, elimine as classes base na hierarquia para diminuir o nível de hierarquia abaixo de '{2}': '{3}'. diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ru.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ru.xlf index 93f0eb7a52..5af81cc157 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ru.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ru.xlf @@ -119,7 +119,7 @@ '{0}' is a new protected member in the 'NonInheritable' class '{1}' - "{0}" — новый защищенный член в "ненаследуемом" классе "{1}". + "{0}" — новый защищенный элемент в "ненаследуемом" классе "{1}". @@ -129,7 +129,7 @@ '{0}' calls '{1}' but does not use the value the method returns. Linq methods are known to not have side effects. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method. - "{0}" вызывает "{1}", но не использует значение, возвращаемое методом. Методы Linq не имеют побочных эффектов. Используйте результат в условном операторе, присвойте его переменной или передайте его в качестве аргумента другому методу. + "{0}" вызывает "{1}", но не использует значение, возвращаемое методом. Методы Linq не имеют известных побочных эффектов. Используйте результат в условном операторе, присвойте его переменной или передайте его в качестве аргумента другому методу. diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.tr.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.tr.xlf index 7e9ad87437..741e914cd9 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.tr.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.tr.xlf @@ -219,7 +219,7 @@ Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods that have multiple return values. Also, the difference between out and ref parameters is not widely understood. - Türleri başvuruya göre geçirmek (out veya ref kullanılarak) için işaretçiler konusunda deneyim sahibi olmak, değer ve başvuru türleri arasındaki farkları anlamak ve birden çok dönüş değeri içeren yöntemleri işlemeyi bilmek gerekir. Ayrıca out ve ref parametreleri arasındaki fark yaygın olarak anlaşılmaz. + Türleri başvuruya göre geçirmek (out veya ref kullanılarak) için işaretçiler konusunda deneyim sahibi olmak, değer ve başvuru türleri arasındaki farkları anlamak ve birden çok dönüş değeri içeren metotları işlemeyi bilmek gerekir. Ayrıca out ve ref parametreleri arasındaki fark genelde kapsamlı bir şekilde anlaşılmaz. diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf index a3109fb8d6..16c5b6bea1 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf @@ -119,7 +119,7 @@ '{0}' is a new protected member in the 'NonInheritable' class '{1}' - “{0}” 是 NonInheritable 类 "{1}” 中新的受保护成员 + “{0}”是 NonInheritable 类“{1}”中新的受保护成员 @@ -129,7 +129,7 @@ '{0}' calls '{1}' but does not use the value the method returns. Linq methods are known to not have side effects. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method. - “{0}”会调用“{1}”,但不使用方法返回的值。据了解,Linq 方法没有负面影响。请使用条件语句中的结果,并将结果赋给变量或将其作为自变量传递给另一个方法。 + “{0}”会调用“{1}”,但不使用方法返回的值。据了解,Linq 方法没有负面影响。在条件语句中使用结果,将结果赋给变量,或将其作为实参传递给另一个方法。 @@ -1444,7 +1444,7 @@ On method {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - 在方法 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为相应的替代项或者完全删除 + 在方法 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为合适的替代项或者完全删除 @@ -1454,7 +1454,7 @@ Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely - 将成员名称 {1} 中的词条“{0}”替换为相应的替代项或者完全删除 + 将成员名称 {1} 中的词条“{0}”替换为合适的替代项或者完全删除 diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hant.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hant.xlf index 03e644d185..010cceebd5 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hant.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hant.xlf @@ -1814,7 +1814,7 @@ '{0}' is coupled with '{1}' different types from '{2}' different namespaces. Rewrite or refactor the code to decrease its class coupling below '{3}'. - ‘{0}’ 與 ‘{2}’ 個不同命名空間中 '{1}’ 個不同的類型結合。請重寫或重構程式碼,以將其類別結合程度降低至 ‘{3}’ 以下。 + '{0}' 已與來自 '{2}' 個不同命名空間中的 '{1}' 個不同類型結合。請重寫或重構程式碼,以將其類別結合程度降低至 '{3}' 以下。 @@ -1859,7 +1859,7 @@ '{0}' has a maintainability index of '{1}'. Rewrite or refactor the code to increase its maintainability index (MI) above '{2}'. - ‘{0}’ 的可維護性指數為 '{1}’。請重寫或重構程式碼,以將其可維護性指數 (MI) 提高到 ‘{2}’ 以上。 + '{0}' 的可維護性指數為 '{1}'。請重寫或重構程式碼,以將其可維護性指數 (MI) 提高到 '{2}' 以上。 @@ -2109,7 +2109,7 @@ Consider making '{0}' not externally visible - 請考慮讓 '{0}' 並非外部可見 + 請考慮對外隱藏 '{0}' diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.cs.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.cs.xlf index 5f1ff6138d..c17ec4bb52 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.cs.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.cs.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + Všechny verze {0} This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + Když se pro komponentu použije závislé rozhraní API, kód už nebude fungovat na všech platformách. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + {0} od verze {1} do {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Toto místo volání je k dispozici na všech platformách. {0} se podporuje jen na {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Toto místo volání je k dispozici na {2}. {0} se podporuje jen na {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Toto místo volání není k dispozici na {2}. {0} se podporuje jen na {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Toto místo volání je k dispozici na všech platformách. {0} se podporuje na {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Toto místo volání je k dispozici na {2}. {0} se podporuje na {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Ověřit kompatibilitu platformy This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Toto místo volání je k dispozici na všech platformách. {0} se nepodporuje na {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Toto místo volání je k dispozici na {2}. {0} se nepodporuje na {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + {0} {1} a starších 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + {0} {1} a novějších 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.de.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.de.xlf index 73652c84ed..06200a9d87 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.de.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.de.xlf @@ -174,12 +174,12 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} When deserializing untrusted input, deserializing a {0} object is insecure. '{1}' either is or derives from {0} - Beim Deserialisieren einer nicht vertrauenswürdigen Eingaben ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. + Beim Deserialisieren einer nicht vertrauenswürdigen Eingabe ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. @@ -199,7 +199,7 @@ When deserializing untrusted input, deserializing a {0} object is insecure. '{1}' either is or derives from {0} - Beim Deserialisieren einer nicht vertrauenswürdigen Eingaben ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. + Beim Deserialisieren einer nicht vertrauenswürdigen Eingabe ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. @@ -219,7 +219,7 @@ When deserializing untrusted input, deserializing a {0} object is insecure. '{1}' either is or derives from {0} - Beim Deserialisieren einer nicht vertrauenswürdigen Eingaben ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. + Beim Deserialisieren einer nicht vertrauenswürdigen Eingabe ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. @@ -229,7 +229,7 @@ When deserializing untrusted input, deserializing a {0} object is insecure. '{1}' either is or derives from {0} - Beim Deserialisieren einer nicht vertrauenswürdigen Eingaben ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. + Beim Deserialisieren einer nicht vertrauenswürdigen Eingabe ist die Deserialisierung eines {0}-Objekts unsicher. "{1}" ist entweder "{0}" oder davon abgeleitet. @@ -419,7 +419,7 @@ When creating path for '{0} in method {1}' from relative archive item path to extract file and the source is an untrusted zip archive, make sure to sanitize relative archive item path '{2} in method {3}' - Wenn Sie einen Pfad für "{0} in der Methode "{1}" vom relativen Archivelementpfad zur Extraktionsdatei erstellen und die Quelle ein nicht vertrauenswürdiges ZIP-Archiv ist, stellen Sie sicher, dass der relative Archivelementpfad "{2}" in der Methode "{3}" bereinigt wird. + Wenn Sie einen Pfad für "{0} in Methode {1}" aus dem relativen Archivelementpfad zur Extraktionsdatei erstellen und die Quelle ein nicht vertrauenswürdiges ZIP-Archiv ist, stellen Sie sicher, dass der relative Archivelementpfad "{2} in Methode {3}" bereinigt wird. @@ -1124,7 +1124,7 @@ Because {0} is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change its signature so that it takes a single parameter of type 'System.Runtime.Serialization.StreamingContext' - Da "{0}" mit "OnSerializing", "OnSerialized", "OnDeserializing" oder "OnDeserialized" markiert ist, ändern Sie die zugehörige Signatur so, dass ein einzelner Parameter vom Typ "System.Runtime.Serialization.StreamingContext" angenommen wird. + Da "{0}" mit "OnSerializing", "OnSerialized", "OnDeserializing" oder "OnDeserialized" markiert ist, ändern Sie die zugehörige Signatur so, dass ein einzelner Parameter vom Typ "System.Runtime.Serialization.StreamingContext" akzeptiert wird. @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + {0}, alle Versionen This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + Durch die Verwendung einer plattformabhängigen API für eine Komponente funktioniert der Code nicht mehr auf allen Plattformen. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + {0}, Version {1} bis {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Diese Aufrufsite ist auf allen Plattformen erreichbar. "{0}" nur unterstützt für: {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Diese Aufrufsite ist erreichbar für: {2}. "{0}" nur unterstützt für: {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Diese Aufrufsite ist nicht erreichbar für: {2}. "{0}" nur unterstützt für: {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Diese Aufrufsite ist auf allen Plattformen erreichbar. "{0}" unterstützt für: {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Diese Aufrufsite ist erreichbar für: {2}. "{0}" unterstützt für: {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Plattformkompatibilität überprüfen This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Diese Aufrufsite ist auf allen Plattformen erreichbar. "{0}" nicht unterstützt für: {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Diese Aufrufsite ist erreichbar für: {2}. "{0}" nicht unterstützt für: {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + {0}, {1} und vorherige Versionen 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + {0}, {1} und höhere Versionen 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. @@ -1599,7 +1599,7 @@ 'Stream' has a 'ReadAsync' overload that takes a 'Memory<Byte>' as the first argument, and a 'WriteAsync' overload that takes a 'ReadOnlyMemory<Byte>' as the first argument. Prefer calling the memory based overloads, which are more efficient. - "Stream" verfügt über eine Überladung "ReadAsync", die "Memory<Byte>" als erstes Argument verwendet, sowie über eine Überladung "WriteAsync", die "ReadOnlyMemory<Byte>" als erstes Argument verwendet. Bevorzugen Sie die Aufrufe der arbeitsspeicherbasierten Überladungen, da diese effizienter sind. + Stream verfügt über eine Überladung "ReadAsync", die "Memory<Byte>" als erstes Argument akzeptiert, sowie über eine Überladung "WriteAsync", die "ReadOnlyMemory<Byte>" als erstes Argument akzeptiert. Rufen Sie möglichst arbeitsspeicherbasierte Überladungen auf, da diese effizienter sind. @@ -1939,7 +1939,7 @@ A method or constructor calls one or more members that have overloads that accept a System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider parameter. When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by the overloaded member might not have the effect that you want in all locales. If the result will be based on the input from/output displayed to the user, specify 'CultureInfo.CurrentCulture' as the 'IFormatProvider'. Otherwise, if the result will be stored and accessed by software, such as when it is loaded from disk/database and when it is persisted to disk/database, specify 'CultureInfo.InvariantCulture'. - Eine Methode oder ein Konstruktor ruft mindestens einen Member mit Überladungen auf, die einen System.IFormatProvider-Parameter akzeptieren, aber die Methode bzw. der Konstruktor ruft nicht die Überladung auf, die den IFormatProvider-Parameter annimmt. Wenn kein System.Globalization.CultureInfo- oder IFormatProvider-Objekt bereitgestellt wird, hat der von dem überladenen Member bereitgestellte Standardwert möglicherweise nicht die gewünschten Auswirkungen in allen Gebietsschemas. Wenn das Ergebnis auf der Eingabe des Benutzers beruht oder die Ausgabe dem Benutzer angezeigt wird, geben Sie "CultureInfo.CurrentCulture" als IFormatProvider an. Wird das Ergebnis hingegen gespeichert und von Software abgerufen (beispielsweise von einem Datenträger oder einer Datenbank geladen und auf einem Datenträger/in einer Datenbank gespeichert), geben Sie "CultureInfo.InvariantCulture" an. + Eine Methode oder ein Konstruktor ruft mindestens einen Member mit Überladungen auf, die einen Parameter "System.IFormatProvider" akzeptieren, aber die Methode bzw. der Konstruktor ruft nicht die Überladung auf, die den Parameter "IFormatProvider" akzeptiert. Wenn kein Objekt "System.Globalization.CultureInfo" oder "IFormatProvider" bereitgestellt wird, hat der von dem überladenen Member bereitgestellte Standardwert möglicherweise nicht die gewünschten Auswirkungen in allen Gebietsschemas. Wenn das Ergebnis auf der Eingabe des Benutzers beruht oder die Ausgabe dem Benutzer angezeigt wird, geben Sie "CultureInfo.CurrentCulture" als IFormatProvider an. Wird das Ergebnis hingegen gespeichert und von Software abgerufen (beispielsweise von einem Datenträger oder einer Datenbank geladen und auf einem Datenträger/in einer Datenbank gespeichert), geben Sie "CultureInfo.InvariantCulture" an. @@ -2064,7 +2064,7 @@ The Range-based indexer on array values produces a copy of requested portion of the array. This copy is often unwanted when it is implicitly used as a Span or Memory value. Use the AsSpan method to avoid the copy. - Der Range-basierte Indexer für Arraywerte erzeugt eine Kopie des angeforderten Bereichs des Arrays. Diese Kopie ist bei einer impliziten Verwendung als Span- oder Memory-Wert häufig unerwünscht. Verwenden Sie die Span-Methode, um die Kopie zu vermeiden. + Der Range-basierte Indexer für Arraywerte erstellt eine Kopie des angeforderten Bereichs des Arrays. Diese Kopie ist bei einer impliziten Verwendung als Span- oder Memory-Wert häufig unerwünscht. Verwenden Sie die Methode "AsSpan", um das Erstellen einer Kopie zu vermeiden. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.es.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.es.xlf index 81bcea553d..896aad351a 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.es.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.es.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + Todas las versiones de "{0}" This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + El uso de una API dependiente de la plataforma en un componente hace que el código deje de funcionar en todas las plataformas. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + "{0}" de la versión {1} a la {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Se puede acceder a este sitio de llamada en todas las plataformas. "{0}" solo se admite en {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Se puede acceder a este sitio de llamada en {2}. "{0}" solo se admite en {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + No se puede acceder a este sitio de llamada en {2}. "{0}" solo se admite en {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Se puede acceder a este sitio de llamada en todas las plataformas. "{0}" se admite en {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Se puede acceder a este sitio de llamada en {2}. "{0}" se admite en {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Validar la compatibilidad de la plataforma This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Se puede acceder a este sitio de llamada en todas las plataformas. "{0}" no se admite en {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Se puede acceder a este sitio de llamada en {2}. "{0}" no se admite en {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + "{0}" {1} y versiones anteriores 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + "{0}" {1} y versiones posteriores 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. @@ -1999,7 +1999,7 @@ A string comparison operation uses a method overload that does not set a StringComparison parameter. It is recommended to use the overload with StringComparison parameter for clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'. - Una operación de comparación de cadenas usa una sobrecarga de método que no establece un parámetro StringComparison. Se recomienda usar la sobrecarga con el parámetro StringComparison para mayor claridad. Si el resultado se va a mostrar al usuario, como los casos en que se ordena una lista de elementos para mostrarlos en un cuadro de lista, especifique "StringComparison.CurrentCulture" o "StringComparison.CurrentCultureIgnoreCase" como parámetro "StringComparison". Si está comparando identificadores que no distinguen mayúsculas de minúsculas, como rutas de acceso de archivos, variables de entorno o claves y valores de Registro, especifique "StringComparison.OrdinalIgnoreCase". De lo contrario, si compara identificadores que distinguen mayúsculas de minúsculas, especifique "StringComparison.Ordinal". + Una operación de comparación de cadenas usa una sobrecarga de método que no establece un parámetro StringComparison. Se recomienda usar la sobrecarga con el parámetro StringComparison para mayor claridad. Si el resultado se va a mostrar al usuario, como los casos en que se ordena una lista de elementos para mostrarlos en un cuadro de lista, especifique "StringComparison.CurrentCulture" o "StringComparison.CurrentCultureIgnoreCase" como parámetro "StringComparison". Si está comparando identificadores que no distinguen mayúsculas de minúsculas, como rutas de acceso de archivos, variables de entorno o claves y valores del Registro, especifique "StringComparison.OrdinalIgnoreCase". De lo contrario, si compara identificadores que distinguen mayúsculas de minúsculas, especifique "StringComparison.Ordinal". @@ -2014,7 +2014,7 @@ A string comparison operation uses a method overload that does not set a StringComparison parameter, hence its behavior could vary based on the current user's locale settings. It is strongly recommended to use the overload with StringComparison parameter for correctness and clarity of intent. If the result will be displayed to the user, such as when sorting a list of items for display in a list box, specify 'StringComparison.CurrentCulture' or 'StringComparison.CurrentCultureIgnoreCase' as the 'StringComparison' parameter. If comparing case-insensitive identifiers, such as file paths, environment variables, or registry keys and values, specify 'StringComparison.OrdinalIgnoreCase'. Otherwise, if comparing case-sensitive identifiers, specify 'StringComparison.Ordinal'. - Una operación de comparación de cadenas usa una sobrecarga de método que no establece un parámetro StringComparison, por lo que su comportamiento puede variar en función de la configuración regional del usuario actual. Se recomienda encarecidamente usar la sobrecarga con el parámetro StringComparison para mayor corrección y claridad de la intención. Si el resultado se va a mostrar al usuario, como los casos en que se ordena una lista de elementos para mostrarlos en un cuadro de lista, especifique "StringComparison.CurrentCulture" o "StringComparison.CurrentCultureIgnoreCase" como parámetro "StringComparison". Si está comparando identificadores que no distinguen mayúsculas de minúsculas, como rutas de acceso de archivos, variables de entorno o claves y valores de Registro, especifique "StringComparison.OrdinalIgnoreCase". De lo contrario, si compara identificadores que distinguen mayúsculas de minúsculas, especifique "StringComparison.Ordinal". + Una operación de comparación de cadenas usa una sobrecarga de método que no establece un parámetro StringComparison, por lo que su comportamiento puede variar en función de la configuración regional del usuario actual. Se recomienda encarecidamente usar la sobrecarga con el parámetro StringComparison para mayor corrección y claridad de la intención. Si el resultado se va a mostrar al usuario, como los casos en que se ordena una lista de elementos para mostrarlos en un cuadro de lista, especifique "StringComparison.CurrentCulture" o "StringComparison.CurrentCultureIgnoreCase" como parámetro "StringComparison". Si está comparando identificadores que no distinguen mayúsculas de minúsculas, como rutas de acceso de archivos, variables de entorno o claves y valores del Registro, especifique "StringComparison.OrdinalIgnoreCase". De lo contrario, si compara identificadores que distinguen mayúsculas de minúsculas, especifique "StringComparison.Ordinal". diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.fr.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.fr.xlf index b6b320e146..7419ee2c70 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.fr.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.fr.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' toutes versions This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + L'utilisation d'une API dépendante de la plateforme sur un composant empêche le code de fonctionner sur l'ensemble des plateformes. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' de la version {1} à {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Ce site d'appel est accessible sur toutes les plateformes. '{0}' est uniquement pris en charge sur {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Ce site d'appel est accessible sur {2}. '{0}' est uniquement pris en charge sur {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Ce site d'appel est inaccessible sur {2}. '{0}' est uniquement pris en charge sur {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Ce site d'appel est accessible sur toutes les plateformes. '{0}' est pris en charge sur {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Ce site d'appel est accessible sur {2}. '{0}' est pris en charge sur {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Valider la compatibilité de la plateforme This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Ce site d'appel est accessible sur toutes les plateformes. '{0}' n'est pas pris en charge sur {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Ce site d'appel est accessible sur {2}. '{0}' n'est pas pris en charge sur {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} et les versions antérieures 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} et les versions ultérieures 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.it.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.it.xlf index 347c1057be..34c2276329 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.it.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.it.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' - tutte le versioni This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + Se si usa un'API dipendente dalla piattaforma su un componente, il codice non funziona più in tutte le piattaforme. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' dalla versione {1} alla versione {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Questo sito di chiamata è raggiungibile da tutte le piattaforme. '{0}' è supportato solo in {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Questo sito di chiamata è raggiungibile da {2}. '{0}' è supportato solo in {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Questo sito di chiamata non è raggiungibile da {2}. '{0}' è supportato solo in {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Questo sito di chiamata è raggiungibile da tutte le piattaforme. '{0}' è supportato in {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Questo sito di chiamata è raggiungibile da {2}. '{0}' è supportato in {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Convalida compatibilità della piattaforma This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Questo sito di chiamata è raggiungibile da tutte le piattaforme. '{0}' non è supportato in {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Questo sito di chiamata è raggiungibile da {2}. '{0}' non è supportato in {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} e versioni precedenti 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} e versioni successive 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ja.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ja.xlf index 344bff2930..930b273883 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ja.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ja.xlf @@ -49,7 +49,7 @@ '{0}' will throw for assemblies embedded in a single-file app - '{0}' は、単一ファイル アプリに組み込まれているアセンブリのためにスローします + '{0}' では、単一ファイル アプリに組み込まれているアセンブリのためにスローします @@ -74,7 +74,7 @@ Avoid 'StringBuilder' parameters for P/Invokes - P/Invoke の 'StringBuilder' パラメーターを使用しない + P/Invoke の 'StringBuilder' パラメーターを使用しないでください @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -499,7 +499,7 @@ Replace TaskContinuationOptions with TaskCreationOptions. - TaskContinuationOptions を TaskCreationOptions に置き換えます。 + TaskContinuationOptions を TaskCreationOptions に置き換えてください。 @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + すべてのバージョンの '{0}' This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + プラットフォーム依存 API をコンポーネント上で使用すると、一部のプラットフォームでコードが動作しなくなります。 '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + バージョン {1} から {2} の '{0}' 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + この呼び出しサイトはすべてのプラットフォームで到達可能です。'{0}' は {1} でのみサポートされています。 This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + この呼び出しサイトは {2} で到達可能です。'{0}' は {1} でのみサポートされています。 This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + この呼び出しサイトは {2} で到達できません。'{0}' は {1} でのみサポートされています。 This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + この呼び出しサイトはすべてのプラットフォームで到達可能です。'{0}' は {1} でサポートされています。 This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + この呼び出しサイトは {2} で到達可能です。'{0}' は {1} でサポートされています。 This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + プラットフォームの互換性を検証 This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + この呼び出しサイトはすべてのプラットフォームで到達可能です。'{0}' は {1} でサポートされていません。 This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + この呼び出しサイトは {2} で到達可能です。'{0}' は {1} でサポートされていません。 This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} 以前 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} 以降 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. @@ -1649,7 +1649,7 @@ StringBuilder.Append and StringBuilder.Insert provide overloads for multiple types beyond System.String. When possible, prefer the strongly-typed overloads over using ToString() and the string-based overload. - StringBuilder.Append および StringBuilder.Insert では、System.String 以外の複数の型に対してオーバーロードが提供されます。可能であれば、ToString () と文字列ベースのオーバーロードを使用するよりも、厳密に型指定されたオーバーロードを優先して使用することをお勧めします。 + StringBuilder.Append および StringBuilder.Insert では、System.String 以外の複数の型に対してオーバーロードを提供します。可能であれば、ToString () と文字列ベースのオーバーロードを使用するよりも、厳密に型指定されたオーバーロードを優先して使用することをお勧めします。 @@ -2199,7 +2199,7 @@ Use ordinal string comparison - 序数の文字列比較を使用する + 序数の文字列比較を使用してください diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ko.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ko.xlf index dbdf887f5f..41057654da 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ko.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ko.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' 모든 버전 This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + 구성 요소에서 플랫폼 종속 API를 사용하면 모든 플랫폼에서 코드가 더 이상 작동하지 않습니다. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' 버전 {1}~{2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + 이 호출 사이트에는 모든 플랫폼에서 연결할 수 있습니다. '{0}'은(는) {1}에서만 지원됩니다. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + 이 호출 사이트에는 {2}에서 연결할 수 있습니다. '{0}'은(는) {1}에서만 지원됩니다. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + 이 호출 사이트에는 {2}에서 연결할 수 없습니다. '{0}'은(는) {1}에서만 지원됩니다. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + 이 호출 사이트에는 모든 플랫폼에서 연결할 수 있습니다. '{0}'은(는) {1}에서 지원됩니다. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + 이 호출 사이트에는 {2}에서 연결할 수 있습니다. '{0}'은(는) {1}에서 지원됩니다. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + 플랫폼 호환성 유효성 검사 This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + 이 호출 사이트에는 모든 플랫폼에서 연결할 수 있습니다. '{0}'은(는) {1}에서 지원되지 않습니다. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + 이 호출 사이트에는 {2}에서 연결할 수 있습니다. '{0}'은(는) {1}에서 지원되지 않습니다. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} 이하 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} 이상 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pl.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pl.xlf index 56729c578f..df815986d4 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pl.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pl.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + wszystkie wersje systemu „{0}” This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + Użycie w składniku interfejsu API zależnego od platformy powoduje, że kod nie działa na różnych platformach. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + system „{0}” w wersji od {1} do {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + To miejsce wywołania jest osiągalne na wszystkich platformach. Metoda „{0}” jest obsługiwana tylko na następujących platformach: {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + To miejsce wywołania jest osiągalne na platformie: {2}. Metoda „{0}” jest obsługiwana tylko na następujących platformach: {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + To miejsce wywołania jest nieosiągalne na platformie: {2}. Metoda „{0}” jest obsługiwana tylko na następujących platformach: {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + To miejsce wywołania jest osiągalne na wszystkich platformach. Metoda „{0}” jest obsługiwana na następujących platformach: {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + To miejsce wywołania jest osiągalne na platformie: {2}. Metoda „{0}” jest obsługiwana na następujących platformach: {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Walidacja zgodności z platformą This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + To miejsce wywołania jest osiągalne na wszystkich platformach. Metoda „{0}” nie jest obsługiwana na następujących platformach: {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + To miejsce wywołania jest osiągalne na platformie: {2}. Metoda „{0}” nie jest obsługiwana na następujących platformach: {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + system „{0}” w wersji {1} lub wcześniejszej 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + system „{0}” w wersji {1} lub nowszej 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pt-BR.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pt-BR.xlf index 77bb9818df..6119de5e90 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pt-BR.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.pt-BR.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -819,7 +819,7 @@ Do not use Enumerable methods on indexable collections. Instead use the collection directly. - Não use métodos Enumerable em coleções indexáveis. Em vez disso, use a coleção diretamente. + Não use métodos Enumerable em coleções indexáveis. Em vez disso, use a coleção. @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' todas as versões This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + O uso de uma API dependente da plataforma em um componente faz com que o código não funcione mais em todas as plataformas. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' da versão {1} à {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Este site de chamada pode ser acessado em todas as plataformas. Só há suporte para '{0}' em: {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Este site de chamada pode ser acessado em: {2}. Só há suporte para '{0}' em: {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Este site de chamada está inacessível em: {2}. Só há suporte para '{0}' em: {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Este site de chamada pode ser acessado em todas as plataformas. Há suporte para '{0}' em: {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Este site de chamada pode ser acessado em: {2}. Há suporte para '{0}' em: {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Validar a compatibilidade da plataforma This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Este site de chamada pode ser acessado em todas as plataformas. Não há suporte para '{0}' em: {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Este site de chamada pode ser acessado em: {2}. Não há suporte para '{0}' em: {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} e anteriores 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} e posteriores 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ru.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ru.xlf index 591e9029a6..39805457af 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ru.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.ru.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + все версии "{0}" This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + При использовании в компоненте API, зависящего от платформы, код больше не будет работать на всех платформах. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + "{0}" с версии {1} до {2} 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Этот сайт вызова доступен на всех платформах. "{0}" поддерживается только в {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Этот сайт вызова доступен в {2}. "{0}" поддерживается только в {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Этот сайт вызова недоступен в {2}. "{0}" поддерживается только в {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Этот сайт вызова доступен на всех платформах. "{0}" поддерживается в {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Этот сайт вызова доступен в {2}. "{0}" поддерживается в {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Проверка совместимости платформы This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Этот сайт вызова доступен на всех платформах. "{0}" не поддерживается в {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Этот сайт вызова доступен в {2}. "{0}" не поддерживается в {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + "{0}" {1} и более ранних версий 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + "{0}" {1} и более поздних версий 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.tr.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.tr.xlf index 2faa157c5e..d830154ba3 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.tr.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.tr.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' tüm sürümler This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + Bileşen üzerinde platforma bağımlı API kullanmak, kodun artık tüm platformlarda çalışmamasına neden olur. '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' {1} sürümünden {2} sürümüne kadar 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + Bu çağrı sitesine tüm platformlarda ulaşılabilir. '{0}' yalnızca şurada desteklenir: {1}. This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + Bu çağrı sitesine şurada ulaşılabilir: {2}. '{0}' yalnızca şurada desteklenir: {1}. This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + Bu çağrı sitesine şurada ulaşılamaz: {2}. '{0}' yalnızca şurada desteklenir: {1}. This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + Bu çağrı sitesine tüm platformlarda ulaşılabilir. '{0}' şurada desteklenir: {1}. This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + Bu çağrı sitesine şurada ulaşılabilir: {2}. '{0}' şurada desteklenir: {1}. This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + Platform uyumluluğunu doğrula This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + Bu çağrı sitesine tüm platformlarda ulaşılabilir. '{0}' şurada desteklenmez: {1}. This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + Bu çağrı sitesine şurada ulaşılabilir: {2}. '{0}' şurada desteklenmez: {1}. This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} ve öncesi 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} ve sonrası 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. @@ -1659,7 +1659,7 @@ Remove the ToString call - ToString çağrısını kaldır + ToString çağrısını kaldırın @@ -2199,7 +2199,7 @@ Use ordinal string comparison - Sıralı dize karşılaştırması kullan + Sıralı dize karşılaştırması kullanın diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hans.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hans.xlf index dd360c2dac..0592ba620d 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hans.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hans.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -754,7 +754,7 @@ {0}() is used where AnyAsync() could be used instead to improve performance - 如果可以使用 AnyAsync(),请改为使用 {0}() 来提高性能 + 使用的是 {0}(),但本可以使用 AnyAsync() 来提高性能 @@ -924,7 +924,7 @@ Do not use stackalloc in loops - 不要在循环中使用 stackalloc + 不要循环使用 stackalloc @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + "{0}" 所有版本 This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + 在组件上使用依赖于平台的 API 会使代码无法用于所有平台。 '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + "{0}" 版本 {1} 到 {2}。 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + 可在所有平台上访问此调用站点。"{0}" 仅在 {1} 上受支持。 This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + 可在 {2} 上访问此调用站点。"{0}" 仅在 {1} 上受支持。 This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + 无法在 {2} 上访问此调用站点。"{0}" 仅在 {1} 上受支持。 This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + 可在所有平台上访问此调用站点。"{0}" 在 {1} 上受支持。 This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + 可在 {2} 上访问此调用站点。"{0}" 在 {1} 上受支持。 This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + 验证平台兼容性 This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + 可在所有平台上访问此调用站点。"{0}" 在 {1} 上不受支持。 This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + 可在 {2} 上访问此调用站点。"{0}" 在 {1} 上不受支持。 This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + "{0}" {1} 及之前版本 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + "{0}" {1} 及更高版本 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hant.xlf b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hant.xlf index b22bddfa83..55a52fdc19 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hant.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/xlf/MicrosoftNetCoreAnalyzersResources.zh-Hant.xlf @@ -174,7 +174,7 @@ , - , + , Separator used for separating list of platform names: {API} is only supported on: {‘windows’, ‘browser’, ‘linux’} @@ -1519,67 +1519,67 @@ '{0}' all versions - '{0}' all versions + '{0}' 所有版本 This call site is reachable on: 'Windows' all versions. Using platform dependent API on a component makes the code no longer work across all platforms. - Using platform dependent API on a component makes the code no longer work across all platforms. + 在元件上使用相依於平台的 API,會使程式碼無法繼續在所有平台上運作。 '{0}' from version {1} to {2} - '{0}' from version {1} to {2} + '{0}' 從 {1} 至 {2} 的版本 'SupportedOnWindows1903UnsupportedOn2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on all platforms. '{0}' is only supported on: {1}. - This call site is reachable on all platforms. '{0}' is only supported on: {1}. + 可在所有平台上連線到此呼叫網站。只有 {1} 支援 '{0}'。 This call site is reachable on all platforms. 'SupportedOnWindowsAndBrowser()' is only supported on: 'windows', 'browser' . This call site is reachable on: {2}. '{0}' is only supported on: {1}. - This call site is reachable on: {2}. '{0}' is only supported on: {1}. + 可在 {2} 上連線到此呼叫網站。只有 {1} 支援 '{0}'。 This call site is reachable on: 'windows' all versions.'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before This call site is unreachable on: {2}. '{0}' is only supported on: {1}. - This call site is unreachable on: {2}. '{0}' is only supported on: {1}. + 無法在下列位置連線到此呼叫網站: {2}。只有 {1} 支援 '{0}'。 This call site is unreachable on: 'browser'. 'SupportedOnWindowsAndBrowser()' is only supported on: 'browser', 'windows'. This call site is reachable on all platforms. '{0}' is supported on: {1}. - This call site is reachable on all platforms. '{0}' is supported on: {1}. + 可在所有平台上連線到此呼叫網站。{1} 支援 '{0}'。 This call site is reachable on all platforms. 'SupportedOnWindows1903UnsupportedFrom2004()' is supported on: 'windows' from version 10.0.1903 to 10.0.2004. This call site is reachable on: {2}. '{0}' is supported on: {1}. - This call site is reachable on: {2}. '{0}' is supported on: {1}. + 可在 {2} 上連線到此呼叫網站。{1} 支援 '{0}'。 This call site is reachable on: 'windows' 10.0.2000 and before. 'UnsupportedOnWindowsSupportedOn1903()' is supported on: 'windows' 10.0.1903 and later. Validate platform compatibility - Validate platform compatibility + 驗證平台相容性 This call site is reachable on all platforms. '{0}' is unsupported on: {1}. - This call site is reachable on all platforms. '{0}' is unsupported on: {1}. + 可在所有平台上連線到此呼叫網站。{1} 不支援 '{0}'。 This call site is reachable on all platforms. 'UnsupportedOnWindows()' is unsupported on: 'windows' This call site is reachable on: {2}. '{0}' is unsupported on: {1}. - This call site is reachable on: {2}. '{0}' is unsupported on: {1}. + 可在 {2} 上連線到此呼叫網站。{1} 不支援 '{0}'。 This call site is reachable on: 'windows', 'browser'. 'UnsupportedOnBrowser()' is unsupported on: 'browser'. '{0}' {1} and before - '{0}' {1} and before + '{0}' {1} 及之前的版本 'SupportedOnWindowsUnsupportedFromWindows2004()' is only supported on: 'windows' 10.0.2004 and before. '{0}' {1} and later - '{0}' {1} and later + '{0}' {1} 及之後的版本 'SupportedOnWindows10()' is only supported on: 'windows' 10.0 and later. diff --git a/src/NetAnalyzers/Core/Microsoft.NetFramework.Analyzers/xlf/MicrosoftNetFrameworkAnalyzersResources.ko.xlf b/src/NetAnalyzers/Core/Microsoft.NetFramework.Analyzers/xlf/MicrosoftNetFrameworkAnalyzersResources.ko.xlf index 4e595442ff..8457407b4f 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetFramework.Analyzers/xlf/MicrosoftNetFrameworkAnalyzersResources.ko.xlf +++ b/src/NetAnalyzers/Core/Microsoft.NetFramework.Analyzers/xlf/MicrosoftNetFrameworkAnalyzersResources.ko.xlf @@ -24,7 +24,7 @@ An access key, also known as an accelerator, enables keyboard access to a control by using the ALT key. When multiple controls have duplicate access keys, the behavior of the access key is not well defined. - 액셀러레이터 키라고도 알려진 액세스 키는 <ALT> 키를 사용하여 컨트롤에 대한 키보드 액세스를 사용합니다. 여러 컨트롤에 중복되는 선택키가 있는 경우 선택키의 동작이 잘 정의되지 않습니다. + 액셀러레이터 키라고도 알려진 액세스 키는 &lt;ALT&gt; 키를 사용하여 컨트롤에 대한 키보드 액세스를 사용합니다. 여러 컨트롤에 중복되는 선택키가 있는 경우 선택키의 동작이 잘 정의되지 않습니다. diff --git a/src/PerformanceSensitiveAnalyzers/CSharp/xlf/AnalyzersResources.zh-Hans.xlf b/src/PerformanceSensitiveAnalyzers/CSharp/xlf/AnalyzersResources.zh-Hans.xlf index bd45551d8b..9957f0bea1 100644 --- a/src/PerformanceSensitiveAnalyzers/CSharp/xlf/AnalyzersResources.zh-Hans.xlf +++ b/src/PerformanceSensitiveAnalyzers/CSharp/xlf/AnalyzersResources.zh-Hans.xlf @@ -104,7 +104,7 @@ Value type to reference type conversion causes boxing at call site (here), and unboxing at the callee-site. Consider using generics if applicable. - 引用类型转换的值类型将导致在调用站点处(此处)装箱和在被调用方站点处取消装箱。如果适用,请考虑使用泛型 + 值类型到引用类型的转换将导致在调用站点处(此处)装箱和在被调用方站点处取消装箱。如果适用,请考虑使用泛型 diff --git a/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.pt-BR.xlf b/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.pt-BR.xlf index aa128c612f..a6a305f33d 100644 --- a/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.pt-BR.xlf +++ b/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.pt-BR.xlf @@ -34,7 +34,7 @@ All public types and members should be declared with nullability annotations in PublicAPI.txt. This draws attention to API nullability changes in the code reviews and source control history, and helps prevent breaking changes. - Todos os tipos e membros públicos devem ser declarados com anotações de nulidade no PublicAPI.txt. Isso chama a atenção para as alterações de nulidade da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações da falha. + Todos os tipos e membros públicos devem ser declarados com anotações de nulidade no PublicAPI.txt. Isso chama a atenção para as alterações de nulidade da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações interruptivas. @@ -59,7 +59,7 @@ All public types and members should be declared in PublicAPI.txt. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes. - Todos os tipos e membros públicos devem ser declarados no PublicAPI.txt. Isso chama a atenção para as alterações da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações da falha. + Todos os tipos e membros públicos devem ser declarados no PublicAPI.txt. Isso chama a atenção para as alterações da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações interruptivas. @@ -174,7 +174,7 @@ When removing a public type or member the corresponding entry in PublicAPI.txt should also be removed. This draws attention to API changes in the code reviews and source control history, and helps prevent breaking changes. - Quando um tipo ou membro público é removido, a entrada correspondente no PublicAPI.txt também deve ser removida. Isso chama a atenção para alterações da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações da falha. + Quando um tipo ou membro público é removido, a entrada correspondente no PublicAPI.txt também deve ser removida. Isso chama a atenção para alterações da API no histórico de revisões de código e de controle do código-fonte e ajuda a evitar alterações interruptivas. diff --git a/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.tr.xlf b/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.tr.xlf index e9489002aa..7f0c11689e 100644 --- a/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.tr.xlf +++ b/src/PublicApiAnalyzers/Core/Analyzers/xlf/PublicApiAnalyzerResources.tr.xlf @@ -199,7 +199,7 @@ Enable tracking of nullability of reference types in the declared API - Bildirilen API'de başvuru türlerinin null olduğunu izlemeyi etkinleştir + Bildirilen API'de başvuru türlerinin null olduğunu izlemeyi etkinleştirin diff --git a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ja.xlf b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ja.xlf index e72fc377b5..550f67865e 100644 --- a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ja.xlf +++ b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ja.xlf @@ -114,7 +114,7 @@ Do not unbox non-copyable value types. - コピー不可の値の型をボックス化解除しません。 + コピー不可の値の型をボックス化解除しないでください。 @@ -244,7 +244,7 @@ Use 'null' instead of 'default' for nullable types. - Null 許容型には、'default' の代わりに 'null' を使用します。 + Null 許容型には、'default' の代わりに 'null' を使用してください。 @@ -324,7 +324,7 @@ Invoke the correct property to ensure correct use site diagnostics - 正しいサイト診断が使用されるように、正しいプロパティを呼び出します + 正しいサイト診断が使用されるように、正しいプロパティを呼び出してください @@ -334,7 +334,7 @@ Invoke the correct property to ensure correct use site diagnostics - 正しいサイト診断が使用されるように、正しいプロパティを呼び出します + 正しいサイト診断が使用されるように、正しいプロパティを呼び出してください @@ -354,7 +354,7 @@ Override 'Object.Equals(object)' when implementing 'IEquatable' - 'IEquatable' を実装するときに 'Object.Equals(object)' をオーバーライドします + IEquatable' を実装するときに 'Object.Equals(object)' をオーバーライドしてください @@ -364,7 +364,7 @@ Override 'Object.Equals(object)' when implementing 'IEquatable' - 'IEquatable' を実装するときに 'Object.Equals(object)' をオーバーライドします + IEquatable' を実装するときに 'Object.Equals(object)' をオーバーライドしてください diff --git a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ru.xlf b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ru.xlf index f124b3a49a..4addd54057 100644 --- a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ru.xlf +++ b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.ru.xlf @@ -169,7 +169,7 @@ Expose member for testing. - Предоставьте элемент для тестирования. + Предоставьте элемент для тестирования @@ -179,7 +179,7 @@ Expose member for testing - Предоставить элемент для тестирования + Предоставление элемента для тестирования diff --git a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.tr.xlf b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.tr.xlf index 8ae9bff55e..2993c8752f 100644 --- a/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.tr.xlf +++ b/src/Roslyn.Diagnostics.Analyzers/Core/xlf/RoslynDiagnosticsAnalyzersResources.tr.xlf @@ -169,17 +169,17 @@ Expose member for testing. - Üyeyi test amacıyla kullanıma sunun. + Test için üyeyi kullanıma sunun. Expose member for testing - Test için üyeyi kullanıma sun + Test için üyeyi kullanıma sunun Expose member for testing - Test için üyeyi kullanıma sun + Test için üyeyi kullanıma sunun From 294f95cd91a33365aa80117421aed139d8fe5a75 Mon Sep 17 00:00:00 2001 From: Buyaa Date: Wed, 17 Feb 2021 13:45:23 -0800 Subject: [PATCH 07/18] CA-1416 Disable generated code analysis (#4846) --- .../InteropServices/PlatformCompatibilityAnalyzer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.cs b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.cs index 183c6b7bbf..375454a4b4 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.cs +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.cs @@ -125,7 +125,7 @@ public sealed partial class PlatformCompatibilityAnalyzer : DiagnosticAnalyzer public override void Initialize(AnalysisContext context) { context.EnableConcurrentExecution(); - context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics); + context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); context.RegisterCompilationStartAction(context => { From b2b8cff7d71e8ec25441dfcf96c4cb22c60f0811 Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Fri, 5 Mar 2021 01:15:25 -0800 Subject: [PATCH 08/18] Fix the global flow state analysis merge algorithm to handle duplicate value merge Fixes #4920 --- ...mCompatibilityAnalyzer.OperationVisitor.cs | 2 +- .../PlatformCompatibilityAnalyzerTests.cs | 46 +++++++++++++++++++ ...s.GlobalFlowStateAnalysisValueSetDomain.cs | 5 ++ .../GlobalFlowStateAnalysisValueSet.cs | 1 + 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs index 5e8579f1e0..f0eaf5f5a5 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs @@ -43,7 +43,7 @@ public override GlobalFlowStateAnalysisValueSet VisitInvocation_NonLambdaOrDeleg for (var i = 0; i < infosBuilder.Count; i++) { var newValue = new GlobalFlowStateAnalysisValueSet(infosBuilder[i]); - value = i == 0 ? newValue : new GlobalFlowStateAnalysisValueSet(value, newValue); + value = (i == 0 || value == newValue) ? newValue : new GlobalFlowStateAnalysisValueSet(value, newValue); } return value; diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs index ac3d1fd201..de0de47368 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs @@ -2645,6 +2645,52 @@ private string GetFormattedString(string resource, params string[] args) return string.Format(CultureInfo.InvariantCulture, resource, args); } + [Fact] + [WorkItem(4920, "https://github.com/dotnet/roslyn-analyzers/issues/4920")] + public async Task TestTimelyTermination() + { + var source = @" +using System.Runtime.InteropServices; +using Microsoft.Win32; + +if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && Registry.GetValue("""", """", null) != null) +{ + foreach (var x in new string[0]) + { + if ("""".ToString() == """") + { + try + { + } + catch + { + } + } + } +}"; + + await new VerifyCS.Test + { + ReferenceAssemblies = ReferenceAssemblies.Net.Net50.AddPackages( + ImmutableArray.Create(new PackageIdentity("Microsoft.Win32.Registry", "5.0.0"))), + LanguageVersion = CSharpLanguageVersion.CSharp9, + TestState = + { + OutputKind = OutputKind.ConsoleApplication, + Sources = { source }, + AnalyzerConfigFiles = { ("/.globalconfig", $@"is_global = true + +{s_msBuildPlatforms}") }, + } + }.RunAsync(); + } + + private string GetFormattedString(string resource, params string[] args) => + string.Format(CultureInfo.InvariantCulture, resource, args); + + private string Join(string platform1, string platform2) => + string.Join(MicrosoftNetCoreAnalyzersResources.CommaSeparator, platform1, platform2); + private static VerifyCS.Test PopulateTestCs(string sourceCode, params DiagnosticResult[] expected) { var test = new VerifyCS.Test diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs index 80546d8058..9df85c0392 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs @@ -79,6 +79,11 @@ public override GlobalFlowStateAnalysisValueSet Merge(GlobalFlowStateAnalysisVal Debug.Assert(value1.Kind == GlobalFlowStateAnalysisValueSetKind.Known); Debug.Assert(value2.Kind == GlobalFlowStateAnalysisValueSetKind.Known); + if (value1 == value2) + { + return value1; + } + return new GlobalFlowStateAnalysisValueSet(value1, value2); } diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs index 8d5ff3780f..c5371110e2 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs @@ -51,6 +51,7 @@ public GlobalFlowStateAnalysisValueSet(GlobalFlowStateAnalysisValueSet parent1, height: Math.Max(parent1.Height, parent2.Height) + 1, GlobalFlowStateAnalysisValueSetKind.Known) { + Debug.Assert(parent1 != parent2); } public ImmutableHashSet AnalysisValues { get; } From 2f94305dbb3ca7a9baeac2ff29ff320b8c0dfa3c Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Sat, 6 Mar 2021 09:27:57 -0800 Subject: [PATCH 09/18] Address feedback from Sam and Gen and also add couple more DFA short circuit checks to fix #51652 --- ...mCompatibilityAnalyzer.OperationVisitor.cs | 4 +- .../PlatformCompatibilityAnalyzerTests.cs | 30 +++++++++ ...s.GlobalFlowStateAnalysisValueSetDomain.cs | 9 +-- .../GlobalFlowStateAnalysisValueSet.cs | 65 ++++++++++++++----- 4 files changed, 82 insertions(+), 26 deletions(-) diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs index f0eaf5f5a5..eae7ee87ad 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs @@ -42,8 +42,8 @@ public override GlobalFlowStateAnalysisValueSet VisitInvocation_NonLambdaOrDeleg { for (var i = 0; i < infosBuilder.Count; i++) { - var newValue = new GlobalFlowStateAnalysisValueSet(infosBuilder[i]); - value = (i == 0 || value == newValue) ? newValue : new GlobalFlowStateAnalysisValueSet(value, newValue); + var newValue = GlobalFlowStateAnalysisValueSet.Create(infosBuilder[i]); + value = i == 0 ? newValue : GlobalFlowStateAnalysisValueSet.CreateWithParents(value, newValue); } return value; diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs index de0de47368..6eb2a7a1cb 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs @@ -2685,6 +2685,36 @@ public async Task TestTimelyTermination() }.RunAsync(); } + [Fact, WorkItem(51652, "https://github.com/dotnet/roslyn/issues/51652")] + public async Task TestGuardedCheckInsideLoopWithTryCatch() + { + var source = @" +using System; +using System.Runtime.InteropServices; +using System.Runtime.Versioning; +using System.Threading.Tasks; + +class TestType +{ + static async Task Main(string[] args) { + while (true) + try { + await Task.Delay(1000); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + Test(); + } catch { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + Test(); + throw; + } + } + + [SupportedOSPlatform(""windows"")] + static void Test() { } +}"; + await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms); + } + private string GetFormattedString(string resource, params string[] args) => string.Format(CultureInfo.InvariantCulture, resource, args); diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs index 9df85c0392..6c4158df74 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs @@ -79,12 +79,7 @@ public override GlobalFlowStateAnalysisValueSet Merge(GlobalFlowStateAnalysisVal Debug.Assert(value1.Kind == GlobalFlowStateAnalysisValueSetKind.Known); Debug.Assert(value2.Kind == GlobalFlowStateAnalysisValueSetKind.Known); - if (value1 == value2) - { - return value1; - } - - return new GlobalFlowStateAnalysisValueSet(value1, value2); + return GlobalFlowStateAnalysisValueSet.CreateWithParents(value1, value2); } public static GlobalFlowStateAnalysisValueSet Intersect(GlobalFlowStateAnalysisValueSet value1, GlobalFlowStateAnalysisValueSet value2) @@ -220,7 +215,7 @@ static bool TryIntersect(GlobalFlowStateAnalysisValueSet value1, GlobalFlowState } else { - result = new GlobalFlowStateAnalysisValueSet(sets, value1.Parents, value1.Height, GlobalFlowStateAnalysisValueSetKind.Known); + result = GlobalFlowStateAnalysisValueSet.Create(sets, value1.Parents, value1.Height); } return true; diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs index c5371110e2..75c80d05a6 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs @@ -21,7 +21,7 @@ internal sealed class GlobalFlowStateAnalysisValueSet : CacheBasedEquatable.Empty, ImmutableHashSet.Empty, 0, GlobalFlowStateAnalysisValueSetKind.Unknown); - public GlobalFlowStateAnalysisValueSet( + private GlobalFlowStateAnalysisValueSet( ImmutableHashSet analysisValues, ImmutableHashSet parents, int height, @@ -40,18 +40,49 @@ public GlobalFlowStateAnalysisValueSet( Kind = kind; } - public GlobalFlowStateAnalysisValueSet(IAbstractAnalysisValue analysisValue) - : this(ImmutableHashSet.Create(analysisValue), ImmutableHashSet.Empty, height: 0, GlobalFlowStateAnalysisValueSetKind.Known) + public static GlobalFlowStateAnalysisValueSet Create( + ImmutableHashSet analysisValues, + ImmutableHashSet parents, + int height) { + Debug.Assert(!analysisValues.IsEmpty || !parents.IsEmpty); + return new(analysisValues, parents, height, GlobalFlowStateAnalysisValueSetKind.Known); } - public GlobalFlowStateAnalysisValueSet(GlobalFlowStateAnalysisValueSet parent1, GlobalFlowStateAnalysisValueSet parent2) - : this(ImmutableHashSet.Empty, - ImmutableHashSet.Create(parent1, parent2), - height: Math.Max(parent1.Height, parent2.Height) + 1, - GlobalFlowStateAnalysisValueSetKind.Known) + public static GlobalFlowStateAnalysisValueSet Create(IAbstractAnalysisValue analysisValue) + => new(ImmutableHashSet.Create(analysisValue), ImmutableHashSet.Empty, height: 0, GlobalFlowStateAnalysisValueSetKind.Known); + + public static GlobalFlowStateAnalysisValueSet CreateWithParents(GlobalFlowStateAnalysisValueSet parent1, GlobalFlowStateAnalysisValueSet parent2) { - Debug.Assert(parent1 != parent2); + Debug.Assert(parent1.Kind == GlobalFlowStateAnalysisValueSetKind.Known); + Debug.Assert(parent2.Kind == GlobalFlowStateAnalysisValueSetKind.Known); + + if (Equals(parent1, parent2)) + { + return parent1; + } + + if (parent1.Height == 0 && parent1.AnalysisValues.IsSubsetOf(parent2.AnalysisValues)) + { + return parent2; + } + + if (parent2.Height == 0 && parent2.AnalysisValues.IsSubsetOf(parent1.AnalysisValues)) + { + return parent1; + } + + if (parent1.Height == parent2.Height && + parent1.AnalysisValues.Count == parent2.AnalysisValues.Count && + Equals(parent1, parent2.GetNegatedValue())) + { + return Empty; + } + + return new(ImmutableHashSet.Empty, + ImmutableHashSet.Create(parent1, parent2), + height: Math.Max(parent1.Height, parent2.Height) + 1, + GlobalFlowStateAnalysisValueSetKind.Known); } public ImmutableHashSet AnalysisValues { get; } @@ -66,7 +97,7 @@ private GlobalFlowStateAnalysisValueSet WithRootParent(GlobalFlowStateAnalysisVa var newHeight = Height + newRoot.Height + 1; if (Parents.IsEmpty) { - return new GlobalFlowStateAnalysisValueSet(AnalysisValues, ImmutableHashSet.Create(newRoot), newHeight, GlobalFlowStateAnalysisValueSetKind.Known); + return GlobalFlowStateAnalysisValueSet.Create(AnalysisValues, ImmutableHashSet.Create(newRoot), newHeight); } using var parentsBuilder = PooledHashSet.GetInstance(); @@ -75,7 +106,7 @@ private GlobalFlowStateAnalysisValueSet WithRootParent(GlobalFlowStateAnalysisVa parentsBuilder.Add(parent.WithRootParent(newRoot)); } - return new GlobalFlowStateAnalysisValueSet(AnalysisValues, parentsBuilder.ToImmutable(), newHeight, GlobalFlowStateAnalysisValueSetKind.Known); + return GlobalFlowStateAnalysisValueSet.Create(AnalysisValues, parentsBuilder.ToImmutable(), newHeight); } internal GlobalFlowStateAnalysisValueSet WithAdditionalAnalysisValues(GlobalFlowStateAnalysisValueSet newAnalysisValuesSet, bool negate) @@ -94,8 +125,8 @@ private GlobalFlowStateAnalysisValueSet WithAdditionalAnalysisValuesCore(GlobalF if (newAnalysisValues.Height == 0) { - return new GlobalFlowStateAnalysisValueSet( - AnalysisValues.AddRange(newAnalysisValues.AnalysisValues), Parents, Height, GlobalFlowStateAnalysisValueSetKind.Known); + return GlobalFlowStateAnalysisValueSet.Create( + AnalysisValues.AddRange(newAnalysisValues.AnalysisValues), Parents, Height); } return newAnalysisValues.WithRootParent(this); @@ -108,7 +139,7 @@ internal GlobalFlowStateAnalysisValueSet GetNegatedValue() if (Height == 0 && AnalysisValues.Count == 1) { var negatedAnalysisValues = ImmutableHashSet.Create(AnalysisValues.Single().GetNegatedValue()); - return new GlobalFlowStateAnalysisValueSet(negatedAnalysisValues, Parents, Height, Kind); + return GlobalFlowStateAnalysisValueSet.Create(negatedAnalysisValues, Parents, Height); } else if (Height > 0 && AnalysisValues.Count == 0) { @@ -119,7 +150,7 @@ internal GlobalFlowStateAnalysisValueSet GetNegatedValue() var parentsBuilder = ImmutableHashSet.CreateBuilder(); foreach (var analysisValue in AnalysisValues) { - parentsBuilder.Add(new GlobalFlowStateAnalysisValueSet(analysisValue.GetNegatedValue())); + parentsBuilder.Add(GlobalFlowStateAnalysisValueSet.Create(analysisValue.GetNegatedValue())); } int height; @@ -136,7 +167,7 @@ internal GlobalFlowStateAnalysisValueSet GetNegatedValue() height = 1; } - return new GlobalFlowStateAnalysisValueSet(ImmutableHashSet.Empty, parentsBuilder.ToImmutable(), height, Kind); + return GlobalFlowStateAnalysisValueSet.Create(ImmutableHashSet.Empty, parentsBuilder.ToImmutable(), height); } static GlobalFlowStateAnalysisValueSet GetNegateValueFromParents(ImmutableHashSet parents) @@ -160,7 +191,7 @@ static GlobalFlowStateAnalysisValueSet GetNegateValueFromParents(ImmutableHashSe } } - return new GlobalFlowStateAnalysisValueSet(analysisValuesBuilder.ToImmutable(), parentsBuilder.ToImmutable(), height, GlobalFlowStateAnalysisValueSetKind.Known); + return GlobalFlowStateAnalysisValueSet.Create(analysisValuesBuilder.ToImmutable(), parentsBuilder.ToImmutable(), height); } } From 67494db6d3b1b30531d028878f56112965f31ca0 Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Mon, 8 Mar 2021 15:43:05 -0800 Subject: [PATCH 10/18] Address feedback from Sam --- ...mCompatibilityAnalyzer.OperationVisitor.cs | 2 +- ...s.GlobalFlowStateAnalysisValueSetDomain.cs | 32 +++++++++++++++++- .../GlobalFlowStateAnalysisValueSet.cs | 33 ------------------- 3 files changed, 32 insertions(+), 35 deletions(-) diff --git a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs index eae7ee87ad..f7101aafab 100644 --- a/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs +++ b/src/NetAnalyzers/Core/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzer.OperationVisitor.cs @@ -43,7 +43,7 @@ public override GlobalFlowStateAnalysisValueSet VisitInvocation_NonLambdaOrDeleg for (var i = 0; i < infosBuilder.Count; i++) { var newValue = GlobalFlowStateAnalysisValueSet.Create(infosBuilder[i]); - value = i == 0 ? newValue : GlobalFlowStateAnalysisValueSet.CreateWithParents(value, newValue); + value = i == 0 ? newValue : GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.Instance.Merge(value, newValue); } return value; diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs index 6c4158df74..b98d27f8cd 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs @@ -1,5 +1,6 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics; @@ -79,7 +80,36 @@ public override GlobalFlowStateAnalysisValueSet Merge(GlobalFlowStateAnalysisVal Debug.Assert(value1.Kind == GlobalFlowStateAnalysisValueSetKind.Known); Debug.Assert(value2.Kind == GlobalFlowStateAnalysisValueSetKind.Known); - return GlobalFlowStateAnalysisValueSet.CreateWithParents(value1, value2); + // Perform some early bail out checks. + if (Equals(value1, value2)) + { + return value1; + } + + if (value1.Height == 0 && value1.AnalysisValues.IsSubsetOf(value2.AnalysisValues)) + { + return value2; + } + + if (value2.Height == 0 && value2.AnalysisValues.IsSubsetOf(value1.AnalysisValues)) + { + return value1; + } + + // Check if value1 and value2 are negations of each other. + // If so, the analysis values nullify each other and we return an empty set. + if (value1.Height == value2.Height && + value1.AnalysisValues.Count == value2.AnalysisValues.Count && + Equals(value1, value2.GetNegatedValue())) + { + return GlobalFlowStateAnalysisValueSet.Empty; + } + + // Create a new value set with value1 and value2 as parent sets. + return GlobalFlowStateAnalysisValueSet.Create( + ImmutableHashSet.Empty, + ImmutableHashSet.Create(value1, value2), + height: Math.Max(value1.Height, value2.Height) + 1); } public static GlobalFlowStateAnalysisValueSet Intersect(GlobalFlowStateAnalysisValueSet value1, GlobalFlowStateAnalysisValueSet value2) diff --git a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs index 75c80d05a6..e97e368fa8 100644 --- a/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs +++ b/src/Utilities/FlowAnalysis/FlowAnalysis/Analysis/GlobalFlowStateAnalysis/GlobalFlowStateAnalysisValueSet.cs @@ -52,39 +52,6 @@ public static GlobalFlowStateAnalysisValueSet Create( public static GlobalFlowStateAnalysisValueSet Create(IAbstractAnalysisValue analysisValue) => new(ImmutableHashSet.Create(analysisValue), ImmutableHashSet.Empty, height: 0, GlobalFlowStateAnalysisValueSetKind.Known); - public static GlobalFlowStateAnalysisValueSet CreateWithParents(GlobalFlowStateAnalysisValueSet parent1, GlobalFlowStateAnalysisValueSet parent2) - { - Debug.Assert(parent1.Kind == GlobalFlowStateAnalysisValueSetKind.Known); - Debug.Assert(parent2.Kind == GlobalFlowStateAnalysisValueSetKind.Known); - - if (Equals(parent1, parent2)) - { - return parent1; - } - - if (parent1.Height == 0 && parent1.AnalysisValues.IsSubsetOf(parent2.AnalysisValues)) - { - return parent2; - } - - if (parent2.Height == 0 && parent2.AnalysisValues.IsSubsetOf(parent1.AnalysisValues)) - { - return parent1; - } - - if (parent1.Height == parent2.Height && - parent1.AnalysisValues.Count == parent2.AnalysisValues.Count && - Equals(parent1, parent2.GetNegatedValue())) - { - return Empty; - } - - return new(ImmutableHashSet.Empty, - ImmutableHashSet.Create(parent1, parent2), - height: Math.Max(parent1.Height, parent2.Height) + 1, - GlobalFlowStateAnalysisValueSetKind.Known); - } - public ImmutableHashSet AnalysisValues { get; } public ImmutableHashSet Parents { get; } public int Height { get; } From 310e50f8e78319123a6b96f11a487c48fc634c8c Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Mon, 8 Mar 2021 17:14:41 -0800 Subject: [PATCH 11/18] Remove test that cannot be added in 5.0.2xx branch --- .../PlatformCompatibilityAnalyzerTests.cs | 46 ------------------- 1 file changed, 46 deletions(-) diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs index 6eb2a7a1cb..7fd97e26d2 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs @@ -2645,46 +2645,6 @@ private string GetFormattedString(string resource, params string[] args) return string.Format(CultureInfo.InvariantCulture, resource, args); } - [Fact] - [WorkItem(4920, "https://github.com/dotnet/roslyn-analyzers/issues/4920")] - public async Task TestTimelyTermination() - { - var source = @" -using System.Runtime.InteropServices; -using Microsoft.Win32; - -if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && Registry.GetValue("""", """", null) != null) -{ - foreach (var x in new string[0]) - { - if ("""".ToString() == """") - { - try - { - } - catch - { - } - } - } -}"; - - await new VerifyCS.Test - { - ReferenceAssemblies = ReferenceAssemblies.Net.Net50.AddPackages( - ImmutableArray.Create(new PackageIdentity("Microsoft.Win32.Registry", "5.0.0"))), - LanguageVersion = CSharpLanguageVersion.CSharp9, - TestState = - { - OutputKind = OutputKind.ConsoleApplication, - Sources = { source }, - AnalyzerConfigFiles = { ("/.globalconfig", $@"is_global = true - -{s_msBuildPlatforms}") }, - } - }.RunAsync(); - } - [Fact, WorkItem(51652, "https://github.com/dotnet/roslyn/issues/51652")] public async Task TestGuardedCheckInsideLoopWithTryCatch() { @@ -2715,12 +2675,6 @@ static void Test() { } await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms); } - private string GetFormattedString(string resource, params string[] args) => - string.Format(CultureInfo.InvariantCulture, resource, args); - - private string Join(string platform1, string platform2) => - string.Join(MicrosoftNetCoreAnalyzersResources.CommaSeparator, platform1, platform2); - private static VerifyCS.Test PopulateTestCs(string sourceCode, params DiagnosticResult[] expected) { var test = new VerifyCS.Test From 469a837deb6bb4bc63006fd3ce5f928ed85d244b Mon Sep 17 00:00:00 2001 From: Manish Vasani Date: Mon, 8 Mar 2021 18:53:43 -0800 Subject: [PATCH 12/18] Add mock attributes to test source in 5.0.2xx branch --- .../InteropServices/PlatformCompatibilityAnalyzerTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs index 7fd97e26d2..f5d5149eaa 100644 --- a/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs +++ b/src/NetAnalyzers/UnitTests/Microsoft.NetCore.Analyzers/InteropServices/PlatformCompatibilityAnalyzerTests.cs @@ -2671,7 +2671,7 @@ static async Task Main(string[] args) { [SupportedOSPlatform(""windows"")] static void Test() { } -}"; +}" + MockAttributesCsSource; await VerifyAnalyzerAsyncCs(source, s_msBuildPlatforms); } From 3c1d0c486c3044f97a48cfd6e18ce843870e24cb Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 18:33:34 +0000 Subject: [PATCH 13/18] [release/5.0.2xx] Update dependencies from dotnet/arcade (#4937) [release/5.0.2xx] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 4 ++-- eng/common/post-build/publish-using-darc.ps1 | 2 +- global.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 21253dbb9a..9d73a2807b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,9 +3,9 @@ - + https://github.com/dotnet/arcade - d8c68c834bcca3f721ad1550404807e301ba7afe + 917ded6b428fc30b40f5ba4e35eb0c863d7f69e1 diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 650b13b089..a40ee827a4 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -54,7 +54,7 @@ try { --id $buildId ` --publishing-infra-version $PublishingInfraVersion ` --default-channels ` - --source-branch master ` + --source-branch main ` --azdev-pat $AzdoToken ` --bar-uri $MaestroApiEndPoint ` --password $MaestroToken ` diff --git a/global.json b/global.json index 4bf8a1fc36..a8812be97e 100644 --- a/global.json +++ b/global.json @@ -17,6 +17,6 @@ "rollForward": "patch" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21112.3" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21159.7" } } From 8f63eb60e980c815161a4673617b29868f6a82bc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 18:47:32 +0000 Subject: [PATCH 14/18] [release/5.0.1xx] Update dependencies from dotnet/arcade (#4938) [release/5.0.1xx] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 4 ++-- eng/common/post-build/publish-using-darc.ps1 | 2 +- global.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 21253dbb9a..9d73a2807b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,9 +3,9 @@ - + https://github.com/dotnet/arcade - d8c68c834bcca3f721ad1550404807e301ba7afe + 917ded6b428fc30b40f5ba4e35eb0c863d7f69e1 diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 650b13b089..a40ee827a4 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -54,7 +54,7 @@ try { --id $buildId ` --publishing-infra-version $PublishingInfraVersion ` --default-channels ` - --source-branch master ` + --source-branch main ` --azdev-pat $AzdoToken ` --bar-uri $MaestroApiEndPoint ` --password $MaestroToken ` diff --git a/global.json b/global.json index 4bf8a1fc36..a8812be97e 100644 --- a/global.json +++ b/global.json @@ -17,6 +17,6 @@ "rollForward": "patch" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21112.3" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.21159.7" } } From beff19ad7d637f2caafe324db0fcea4320983de3 Mon Sep 17 00:00:00 2001 From: Jonathon Marolf Date: Fri, 16 Apr 2021 11:42:18 -0700 Subject: [PATCH 15/18] remove unused resource strings --- ...rosoftCodeQualityAnalyzersResources.ja.xlf | 90 ------------------- ...oftCodeQualityAnalyzersResources.pt-BR.xlf | 90 ------------------- ...tCodeQualityAnalyzersResources.zh-Hans.xlf | 90 ------------------- 3 files changed, 270 deletions(-) diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf index 920374007e..325984793a 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.ja.xlf @@ -1242,96 +1242,6 @@ {3} で宣言されている識別子と一致するように、メンバー {0} のパラメーター名 {1} を {2} に変更してください - - Use preferred terms - 適切な用語を使用します - - - - The name of an externally visible identifier includes a term for which an alternative, preferred term exists. Alternatively, the name includes the term ""Flag"" or ""Flags"". - 外部から参照可能な識別子の名前には、代わりとなる適切な用語が存在する用語が含まれています。または、名前に ""Flag"" または ""Flags"" という語が含まれています。 - - - - Replace the term '{0}' in assembly name {1} with the preferred alternate '{2}' - アセンブリ名 {1} の用語 '{0}' を適切なもの '{2}' に置き換えてください - - - - Replace the term '{0}' in namespace name '{1}' with the preferred alternate '{2}' - 名前空間の名前 '{1}' の用語 '{0}' を適切な用語 '{2}' に置き換えてください - - - - In member {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - メンバー {0} で、パラメーター名 {2} の用語 '{1}' を適切な用語 '{3}' に置き換えてください - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - デリゲート {0} で、パラメーター名 {2} の用語 '{1}' を適切な用語 '{3}' に置き換えてください - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - 型 {0} で、ジェネリック型パラメーター名 {2} の用語 '{1}' を適切な用語 '{3}' に置き換えてください - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - メソッド {0} で、ジェネリック型パラメーター名 {2} の用語 '{1}' を適切な用語 '{3}' に置き換えてください - - - - Replace the term '{0}' in type name {1} with the preferred alternate '{2}' - 型名 {1} の用語 '{0}' を適切な用語 '{2}' に置き換えてください - - - - Replace the term '{0}' in member name {1} with the preferred alternate '{2}' - メンバー名 {1} の用語 '{0}' を適切な用語 '{2}' に置き換えてください - - - - Replace the term '{0}' in assembly name {1} with an appropriate alternate or remove it entirely - アセンブリ名 {1} の用語 '{0}' を適切な用語に置き換えるか、全体を削除してください - - - - Replace the term '{0}' in namespace name '{1}' with an appropriate alternate or remove it entirely - 名前空間の名前 '{1}' の用語 '{0}' を適切な用語に置き換えるか、全体を削除してください - - - - In member {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - メンバー {0} で、パラメーター名 {2} の用語 '{1}' を適切な用語に置き換えるか、全体を削除してください - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - デリゲート {0} で、パラメーター名 {2} の用語 '{1}' を適切な用語に置き換えるか、全体を削除してください - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - 型 {0} で、ジェネリック型パラメーター名 {2} の用語 '{1}' を適切な用語に置き換えるか、全体を削除してください - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - メソッド {0} で、パラメーター名 {2} の用語 '{1}' を適切な用語に置き換えるか、全体を削除してください - - - - Replace the term '{0}' in type name {1} with an appropriate alternate or remove it entirely - 型名 {1} の用語 '{0}' を適切な用語に置き換えるか、全体を削除してください - - - - Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely - メンバー名 {1} の用語 '{0}' を適切な用語に置き換えるか、全体を削除してください - - Override equals and operator equals on value types equals および operator equals を値型でオーバーライドします diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf index a0b33bd9ae..d95c2e0341 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.pt-BR.xlf @@ -1242,96 +1242,6 @@ No membro {0}, altere o nome de parâmetro {1} para {2} a fim de corresponder ao identificador conforme declarado em {3} - - Use preferred terms - Use termos preferenciais - - - - The name of an externally visible identifier includes a term for which an alternative, preferred term exists. Alternatively, the name includes the term ""Flag"" or ""Flags"". - O nome de um identificador visível externamente inclui um termo para o qual um termo preferencial alternativo existe. Como alternativa, o nome inclui o termo ""Flag"" ou ""Flags"". - - - - Replace the term '{0}' in assembly name {1} with the preferred alternate '{2}' - Substitua o termo '{0}' no nome de assembly {1} pela alternativa preferencial '{2}' - - - - Replace the term '{0}' in namespace name '{1}' with the preferred alternate '{2}' - Substitua o termo '{0}' no nome de namespace '{1}' pela alternativa preferencial '{2}' - - - - In member {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - No membro {0}, substitua o termo '{1}' no nome de parâmetro {2} pela alternativa preferencial '{3}' - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - No delegado {0}, substitua o termo '{1}' no nome de parâmetro {2} pela alternativa preferencial '{3}' - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - No tipo {0}, substitua o termo '{1}' no nome de parâmetro de tipo genérico {2} pela alternativa preferencial '{3}' - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - No método {0}, substitua o termo '{1}' no nome de parâmetro de tipo genérico {2} pela alternativa preferencial '{3}' - - - - Replace the term '{0}' in type name {1} with the preferred alternate '{2}' - Substitua o termo '{0}' no nome de tipo '{1}' pela alternativa preferencial '{2}' - - - - Replace the term '{0}' in member name {1} with the preferred alternate '{2}' - Substitua o termo '{0}' no nome de membro {1} pela alternativa preferencial '{2}' - - - - Replace the term '{0}' in assembly name {1} with an appropriate alternate or remove it entirely - Substitua o termo '{0}' no nome de assembly {1} por uma alternativa apropriada ou remova-o inteiramente - - - - Replace the term '{0}' in namespace name '{1}' with an appropriate alternate or remove it entirely - Substitua o termo '{0}' no nome do namespace '{1}' por uma alternativa apropriada ou remova-o inteiramente - - - - In member {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - No membro {0}, substitua o termo '{1}' no nome de parâmetro {2} por uma alternativa apropriada ou remova-o inteiramente - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - No delegado {0}, substitua o termo '{1}' no nome de parâmetro {2} por uma alternativa apropriada ou remova-o inteiramente - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - No tipo {0}, substitua o termo '{1}' no nome do parâmetro de tipo genérico {2} por uma alternativa apropriada ou remova-o inteiramente - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - No método {0}, substitua o termo '{1}' no nome de parâmetro de tipo genérico {2} por uma alternativa apropriada ou remova-o inteiramente - - - - Replace the term '{0}' in type name {1} with an appropriate alternate or remove it entirely - Substitua o termo '{0}' no nome de tipo {1} por uma alternativa apropriada ou remova-o inteiramente - - - - Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely - Substitua o termo '{0}' no nome de membro {1} por uma alternativa apropriada ou remova-o inteiramente - - Override equals and operator equals on value types Substitua Equals e o operador Equals em tipos de valores diff --git a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf index 47b0ee724b..b4fe346a72 100644 --- a/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf +++ b/src/NetAnalyzers/Core/Microsoft.CodeQuality.Analyzers/xlf/MicrosoftCodeQualityAnalyzersResources.zh-Hans.xlf @@ -1242,96 +1242,6 @@ 在成员 {0} 中,将参数名 {1} 改为 {2},使其与已在 {3} 中声明的标识符匹配 - - Use preferred terms - 使用首选词条 - - - - The name of an externally visible identifier includes a term for which an alternative, preferred term exists. Alternatively, the name includes the term ""Flag"" or ""Flags"". - 外部可见的标识符的名称包含一个词条,并且存在该词条的备选首选词条。或者,该名称包含词条 "Flag" 或 "Flags"。 - - - - Replace the term '{0}' in assembly name {1} with the preferred alternate '{2}' - 将程序集名称 {1} 中的词条“{0}”替换为首选替代项“{2}” - - - - Replace the term '{0}' in namespace name '{1}' with the preferred alternate '{2}' - 将命名空间名称“{1}”中的词条“{0}”替换为首选替代项“{2}” - - - - In member {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - 在成员 {0} 中,将参数名称 {2} 中的词条“{1}”替换为首选替代项“{3}” - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with the preferred alternate '{3}' - 在委托 {0} 中,将参数名称 {2} 中的词条“{1}”替换为首选替代项“{3}” - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - 在类型 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为首选替代项“{3}” - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with the preferred alternate '{3}' - 在方法 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为首选替代项“{3}” - - - - Replace the term '{0}' in type name {1} with the preferred alternate '{2}' - 将类型名称 {1} 中的词条“{0}”替换为首选替代项“{2}” - - - - Replace the term '{0}' in member name {1} with the preferred alternate '{2}' - 将成员名称 {1} 中的词条“{0}”替换为首选替代项“{2}” - - - - Replace the term '{0}' in assembly name {1} with an appropriate alternate or remove it entirely - 将程序集名称 {1} 中的词条“{0}”替换为相应的替代项或者完全删除 - - - - Replace the term '{0}' in namespace name '{1}' with an appropriate alternate or remove it entirely - 将命名空间名称“{1}”中的词条“{0}”替换为相应的替代项或者完全删除 - - - - In member {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - 在成员 {0} 中,将参数名称 {2} 中的词条“{1}”替换为相应的替代项或者完全删除 - - - - In delegate {0}, replace the term '{1}' in parameter name {2} with an appropriate alternate or remove it entirely - 在委托 {0} 中,将参数名称 {2} 中的词条“{1}”替换为相应的替代项或者完全删除 - - - - On type {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - 在类型 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为相应的替代项或者完全删除 - - - - On method {0}, replace the term '{1}' in generic type parameter name {2} with an appropriate alternate or remove it entirely - 在方法 {0} 中,将泛型类型参数名称 {2} 中的词条“{1}”替换为合适的替代项或者完全删除 - - - - Replace the term '{0}' in type name {1} with an appropriate alternate or remove it entirely - 将类型名称 {1} 中的词条“{0}”替换为相应的替代项或者完全删除 - - - - Replace the term '{0}' in member name {1} with an appropriate alternate or remove it entirely - 将成员名称 {1} 中的词条“{0}”替换为合适的替代项或者完全删除 - - Override equals and operator equals on value types 重写值类型上的 Equals 和相等运算符 From d3f1762912d7175a80b5954b9786f93f7b262d8a Mon Sep 17 00:00:00 2001 From: Jonathon Marolf Date: Fri, 16 Apr 2021 11:49:33 -0700 Subject: [PATCH 16/18] update translation --- .../Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf index 4a55396b81..8c8085ae87 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf @@ -304,7 +304,7 @@ Remove duplicate entries for diagnostic ID between analyzer releases. - アナライザー リリース間で診断 ID の重複しているエントリを削除してください。 + From 1cdfe67fcbe73cf220dd575c5140df6229c4a95c Mon Sep 17 00:00:00 2001 From: Jonathon Marolf Date: Fri, 16 Apr 2021 11:50:35 -0700 Subject: [PATCH 17/18] fixup --- .../Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf index 8c8085ae87..4a55396b81 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf @@ -304,7 +304,7 @@ Remove duplicate entries for diagnostic ID between analyzer releases. - + アナライザー リリース間で診断 ID の重複しているエントリを削除してください。 From 7aab728844ec86eb4b549703215330b099211411 Mon Sep 17 00:00:00 2001 From: Jonathon Marolf Date: Fri, 16 Apr 2021 11:53:49 -0700 Subject: [PATCH 18/18] make xliff tasks happy --- .../Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf index 4a55396b81..04596113da 100644 --- a/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf +++ b/src/Microsoft.CodeAnalysis.Analyzers/Core/xlf/CodeAnalysisDiagnosticsResources.ja.xlf @@ -303,7 +303,7 @@ - Remove duplicate entries for diagnostic ID between analyzer releases. + Remove duplicate entries for diagnostic ID between analyzer releases アナライザー リリース間で診断 ID の重複しているエントリを削除してください。