diff --git a/eng/Versions.props b/eng/Versions.props
index 9fff248d547..efa0f034ce6 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -3,7 +3,7 @@
- 18.6.0release
+ 18.6.1release
servicing
18.5.0-preview-26126-01
15.1.0.0
diff --git a/src/Build/BackEnd/Components/Communications/NodeProviderOutOfProcBase.cs b/src/Build/BackEnd/Components/Communications/NodeProviderOutOfProcBase.cs
index 95cf4815134..360b60d70b8 100644
--- a/src/Build/BackEnd/Components/Communications/NodeProviderOutOfProcBase.cs
+++ b/src/Build/BackEnd/Components/Communications/NodeProviderOutOfProcBase.cs
@@ -475,6 +475,12 @@ void CreateNodeContext(int nodeId, Process nodeToReuse, Stream nodeStream, byte
bool isNativeHost = msbuildLocation != null && Path.GetFileName(msbuildLocation).Equals(Constants.MSBuildExecutableName, StringComparison.OrdinalIgnoreCase);
string expectedProcessName = Path.GetFileNameWithoutExtension(isNativeHost ? msbuildLocation : (CurrentHost.GetCurrentHost() ?? msbuildLocation));
+#if NETFRAMEWORK
+ // Fall back to the standard executable name for most nodes
+ // on .NET Framework, to function in `ShutdownAllNodes()`
+ expectedProcessName ??= Constants.MSBuildAppName;
+#endif
+
Process[] processes;
try
{