diff --git a/eng/Directory.Build.Common.props b/eng/Directory.Build.Common.props index a74bc3fa6..c851fe773 100644 --- a/eng/Directory.Build.Common.props +++ b/eng/Directory.Build.Common.props @@ -22,11 +22,10 @@ $(NoWarn);NU1507 + $(NoWarn);NU1701 - - - + --> \ No newline at end of file diff --git a/src/Cli/ArtifactAssembler/ArtifactAssembler.cs b/src/Cli/ArtifactAssembler/ArtifactAssembler.cs index 7f7467fcb..1654d448d 100644 --- a/src/Cli/ArtifactAssembler/ArtifactAssembler.cs +++ b/src/Cli/ArtifactAssembler/ArtifactAssembler.cs @@ -277,7 +277,7 @@ private async Task CreateVisualStudioCoreToolsAsync() FileUtilities.CopyDirectory(inProcArtifactDirPath, createDirectory ? Path.Combine(consolidatedArtifactDirPath, Constants.InProc8DirectoryName) : consolidatedArtifactDirPath); Directory.Delete(inProcArtifactDirPath, true); - return (artifactDirName, consolidatedArtifactDirPath); + return await Task.FromResult((artifactDirName, consolidatedArtifactDirPath)); } private async Task CreateCliCoreToolsAsync() @@ -365,6 +365,7 @@ private async Task CreateCliCoreToolsAsync() Console.WriteLine("Finished assembling CLI Core Tools artifacts"); Console.WriteLine(); + await Task.CompletedTask; } private (string artifactDirectory, string version) GetArtifactDirectoryAndVersionNumber(string extractedRootDirectory, string artifactName) @@ -420,6 +421,7 @@ private async Task ExtractZipFilesInDirectoryAsync(string zipSourceDir, string e FileUtilities.ExtractToDirectory(zipFile, destinationDir); File.Delete(zipFile); } + await Task.CompletedTask; } } } \ No newline at end of file diff --git a/src/Cli/func/Actions/HostActions/StartHostAction.cs b/src/Cli/func/Actions/HostActions/StartHostAction.cs index f48464b78..7bdb81d73 100644 --- a/src/Cli/func/Actions/HostActions/StartHostAction.cs +++ b/src/Cli/func/Actions/HostActions/StartHostAction.cs @@ -76,7 +76,7 @@ internal class StartHostAction : BaseAction public string JsonOutputFile { get; set; } - public string? HostRuntime { get; set; } + public string HostRuntime { get; set; } public StartHostAction(ISecretsManager secretsManager, IProcessManager processManager) { diff --git a/src/Cli/func/Actions/HostActions/Startup.cs b/src/Cli/func/Actions/HostActions/Startup.cs index a0b98f5eb..ae5ed45f3 100644 --- a/src/Cli/func/Actions/HostActions/Startup.cs +++ b/src/Cli/func/Actions/HostActions/Startup.cs @@ -137,7 +137,7 @@ public void Configure(IApplicationBuilder app) }); } - IApplicationLifetime applicationLifetime = app.ApplicationServices + IApplicationLifetime applicationLifetime = app.ApplicationServices .GetRequiredService(); app.UseWebJobsScriptHost(applicationLifetime); diff --git a/src/Cli/func/Actions/HostActions/WebHost/Security/CliAuthenticationHandler.cs b/src/Cli/func/Actions/HostActions/WebHost/Security/CliAuthenticationHandler.cs index a646e54e6..27bd5c53d 100644 --- a/src/Cli/func/Actions/HostActions/WebHost/Security/CliAuthenticationHandler.cs +++ b/src/Cli/func/Actions/HostActions/WebHost/Security/CliAuthenticationHandler.cs @@ -16,9 +16,10 @@ namespace Azure.Functions.Cli.Actions.HostActions.WebHost.Security { public class CliAuthenticationHandler : AuthenticationHandler where TOptions : AuthenticationSchemeOptions, new() { - public CliAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock) - : base(options, logger, encoder, clock) + public CliAuthenticationHandler(IOptionsMonitor options, ILoggerFactory logger, UrlEncoder encoder, TimeProvider timeProvider) + : base(options, logger, encoder) { + options.CurrentValue.TimeProvider = timeProvider; } protected override Task HandleAuthenticateAsync() diff --git a/src/Cli/func/ConsoleApp.cs b/src/Cli/func/ConsoleApp.cs index de4cc82d3..f3fc2623e 100644 --- a/src/Cli/func/ConsoleApp.cs +++ b/src/Cli/func/ConsoleApp.cs @@ -373,7 +373,7 @@ internal IAction Parse() return action; } } - catch (CliArgumentsException ex) + catch (CliArgumentsException) { // TODO: we can probably display help here as well. // This happens for actions that expect an ordered untyped options. diff --git a/src/Cli/func/Helpers/RetryHelper.cs b/src/Cli/func/Helpers/RetryHelper.cs index 5935c837e..7b59949cf 100644 --- a/src/Cli/func/Helpers/RetryHelper.cs +++ b/src/Cli/func/Helpers/RetryHelper.cs @@ -24,7 +24,7 @@ public static async Task Retry(Func func, int retryCount, TimeSpan retryDe { if (retryCount <= 0) { - throw e; + throw; } retryCount--; if (displayError) @@ -50,7 +50,7 @@ public static async Task Retry(Func> func, int retryCount, TimeSpa { if (retryCount <= 0) { - throw e; + throw; } retryCount--; if (displayError) diff --git a/src/Cli/func/Telemetry/ExternalTelemetryProperties.cs b/src/Cli/func/Telemetry/ExternalTelemetryProperties.cs index e0ebf8142..5f506fe5e 100644 --- a/src/Cli/func/Telemetry/ExternalTelemetryProperties.cs +++ b/src/Cli/func/Telemetry/ExternalTelemetryProperties.cs @@ -24,17 +24,14 @@ internal static class ExternalTelemetryProperties /// internal static string GetInstallationType() { - if (RuntimeEnvironment.OperatingSystemPlatform != Platform.Windows) - { - return ""; - } - const string Key = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"; const string ValueName = @"InstallationType"; try { - return (string)Registry.GetValue(Key, ValueName, defaultValue: ""); + return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? Registry.GetValue(Key, ValueName, defaultValue: "") as string + : ""; } // Catch everything: this is for telemetry only. catch (Exception e) diff --git a/src/Cli/func/Telemetry/Telemetry.cs b/src/Cli/func/Telemetry/Telemetry.cs index d48bd0e0a..1d529836e 100644 --- a/src/Cli/func/Telemetry/Telemetry.cs +++ b/src/Cli/func/Telemetry/Telemetry.cs @@ -92,10 +92,13 @@ private void InitializeTelemetry() { var persistenceChannel = new PersistenceChannel.PersistenceChannel(sendersCount: _senderCount); persistenceChannel.SendingInterval = TimeSpan.FromMilliseconds(1); - TelemetryConfiguration.Active.TelemetryChannel = persistenceChannel; + var telemetryConfiguration = new TelemetryConfiguration + { + TelemetryChannel = persistenceChannel, + ConnectionString = $"InstrumentationKey={Constants.TelemetryInstrumentationKey}" + }; - _client = new TelemetryClient(); - _client.InstrumentationKey = Constants.TelemetryInstrumentationKey; + _client = new TelemetryClient(telemetryConfiguration); _client.Context.Session.Id = CurrentSessionId; _client.Context.Device.OperatingSystem = RuntimeEnvironment.OperatingSystem; diff --git a/src/CoreToolsHost/AppLoader/HostFxr.cs b/src/CoreToolsHost/AppLoader/HostFxr.cs index 6e7d2616b..dee9341e2 100644 --- a/src/CoreToolsHost/AppLoader/HostFxr.cs +++ b/src/CoreToolsHost/AppLoader/HostFxr.cs @@ -12,6 +12,13 @@ public unsafe struct hostfxr_initialize_parameters public nint size; public char* host_path; public char* dotnet_root; + + public hostfxr_initialize_parameters() + { + size = sizeof(hostfxr_initialize_parameters); + host_path = null; + dotnet_root = null; + } }; [LibraryImport("hostfxr", EntryPoint = "hostfxr_initialize_for_dotnet_command_line", diff --git a/src/CoreToolsHost/LocalSettingsJsonParser.cs b/src/CoreToolsHost/LocalSettingsJsonParser.cs index 793c947c9..e0938d684 100644 --- a/src/CoreToolsHost/LocalSettingsJsonParser.cs +++ b/src/CoreToolsHost/LocalSettingsJsonParser.cs @@ -9,7 +9,7 @@ namespace CoreToolsHost { internal static class LocalSettingsJsonParser { - internal static async Task GetLocalSettingsJsonAsJObjectAsync() + internal static async Task GetLocalSettingsJsonAsJObjectAsync() { var fullPath = Path.Combine(Environment.CurrentDirectory, "local.settings.json");