diff --git a/src/RequestProcessor.cs b/src/RequestProcessor.cs
index 296bf21b..3f4b51b2 100644
--- a/src/RequestProcessor.cs
+++ b/src/RequestProcessor.cs
@@ -344,6 +344,19 @@ internal StreamingMessage ProcessInvocationCancelRequest(StreamingMessage reques
internal StreamingMessage ProcessFunctionEnvironmentReloadRequest(StreamingMessage request)
{
+ var stopwatch = new Stopwatch();
+ stopwatch.Start();
+
+ var environmentReloadRequest = request.FunctionEnvironmentReloadRequest;
+ foreach (var (name, value) in environmentReloadRequest.EnvironmentVariables)
+ {
+ Environment.SetEnvironmentVariable(name, value);
+ }
+
+ var rpcLogger = new RpcLogger(_msgStream);
+ rpcLogger.SetContext(request.RequestId, null);
+ rpcLogger.Log(isUserOnlyLog: false, LogLevel.Trace, string.Format(PowerShellWorkerStrings.EnvironmentReloadCompleted, stopwatch.ElapsedMilliseconds));
+
StreamingMessage response = NewStreamingMessageTemplate(
request.RequestId,
StreamingMessage.ContentOneofCase.FunctionEnvironmentReloadResponse,
diff --git a/src/resources/PowerShellWorkerStrings.resx b/src/resources/PowerShellWorkerStrings.resx
index dc6fd2a2..dcf9a376 100644
--- a/src/resources/PowerShellWorkerStrings.resx
+++ b/src/resources/PowerShellWorkerStrings.resx
@@ -313,4 +313,7 @@
PowerShell version: '{0}'.
+
+ Environment reload completed in {0} ms.
+
\ No newline at end of file