Skip to content
This repository was archived by the owner on Apr 20, 2023. It is now read-only.

Commit 495630f

Browse files
author
William Lee
authored
when process has not env, but future will, show the instruction (#8739)
1 parent 2e7c5f1 commit 495630f

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

src/dotnet/ShellShim/WindowsEnvironmentPath.cs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,19 @@ public void AddPackageExecutablePathToUserPath()
4040
}
4141

4242
private bool PackageExecutablePathExists()
43+
{
44+
return PackageExecutablePathExistsForCurrentProcess() || PackageExecutablePathWillExistForFutureNewProcess();
45+
}
46+
47+
private bool PackageExecutablePathWillExistForFutureNewProcess()
4348
{
4449
return EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.User))
45-
|| EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Machine))
46-
|| EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Process));
50+
|| EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Machine));
51+
}
52+
53+
private bool PackageExecutablePathExistsForCurrentProcess()
54+
{
55+
return EnvironmentVariableConatinsPackageExecutablePath(Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.Process));
4756
}
4857

4958
private bool EnvironmentVariableConatinsPackageExecutablePath(string environmentVariable)
@@ -58,21 +67,17 @@ private bool EnvironmentVariableConatinsPackageExecutablePath(string environment
5867

5968
public void PrintAddPathInstructionIfPathDoesNotExist()
6069
{
61-
if (!PackageExecutablePathExists())
70+
if (!PackageExecutablePathExistsForCurrentProcess() && PackageExecutablePathWillExistForFutureNewProcess())
71+
{
72+
_reporter.WriteLine(
73+
CommonLocalizableStrings.EnvironmentPathWindowsNeedReopen);
74+
}
75+
else if (!PackageExecutablePathWillExistForFutureNewProcess())
6276
{
63-
if (Environment.GetEnvironmentVariable(PathName, EnvironmentVariableTarget.User).Split(';')
64-
.Contains(_packageExecutablePath))
65-
{
66-
_reporter.WriteLine(
67-
CommonLocalizableStrings.EnvironmentPathWindowsNeedReopen);
68-
}
69-
else
70-
{
71-
_reporter.WriteLine(
72-
string.Format(
73-
CommonLocalizableStrings.EnvironmentPathWindowsManualInstructions,
74-
_packageExecutablePath));
75-
}
77+
_reporter.WriteLine(
78+
string.Format(
79+
CommonLocalizableStrings.EnvironmentPathWindowsManualInstructions,
80+
_packageExecutablePath));
7681
}
7782
}
7883
}

0 commit comments

Comments
 (0)