diff --git a/src/Cli/dotnet/CommonOptions.cs b/src/Cli/dotnet/CommonOptions.cs index ed88ba0041c2..3399acb9a71b 100644 --- a/src/Cli/dotnet/CommonOptions.cs +++ b/src/Cli/dotnet/CommonOptions.cs @@ -94,9 +94,13 @@ public static Option ConfigurationOption(string description) => ArgumentHelpName = CommonLocalizableStrings.VersionSuffixArgumentName }.ForwardAsSingle(o => $"-property:VersionSuffix={o}"); - public static Argument DefaultToCurrentDirectory(this Argument arg) + public static Lazy NormalizedCurrentDirectory = new Lazy(() => PathUtility.EnsureTrailingSlash(Directory.GetCurrentDirectory())); + + public static Argument DefaultToCurrentDirectory(this Argument arg) { - arg.SetDefaultValue(PathUtility.EnsureTrailingSlash(Directory.GetCurrentDirectory())); + // we set this lazily so that we don't pay the overhead of determining the + // CWD multiple times, one for each Argument that uses this. + arg.SetDefaultValueFactory(() => NormalizedCurrentDirectory.Value); return arg; }