Example #1
0
        public void RespectsSearchPath()
        {
            var environmentSearchPath = SearchPathSearcher.ResolveSearchPath(Environment.GetEnvironmentVariable("PATH"));
            var dotnetPath            = SearchPathSearcher.FindExecutable(TestUtil.DotnetCommandName, false, environmentSearchPath);

            Assert.NotNull(dotnetPath);

            var searchPath = new[] { Path.GetDirectoryName(dotnetPath) ! };
Example #2
0
        private static string ResolveExecutablePath(string fileName, ChildProcessFlags flags)
        {
            bool ignoreSearchPath = flags.HasIgnoreSearchPath();
            var  searchPath       = ignoreSearchPath ? null : EnvironmentSearchPathCache.ResolveSearchPath();
            var  resolvedPath     = SearchPathSearcher.FindExecutable(fileName, flags.HasAllowRelativeFileName(), searchPath);

            if (resolvedPath is null)
            {
                ThrowHelper.ThrowExecutableNotFoundException(fileName, flags);
            }
            return(resolvedPath);
        }
Example #3
0
            public static IReadOnlyList <string> ResolveSearchPath()
            {
                var envStr = Environment.GetEnvironmentVariable("PATH");

                lock (Lock)
                {
                    if (envStr == _previousEnvStr)
                    {
                        return(_cachedSearchPath);
                    }
                    else
                    {
                        var searchPath = SearchPathSearcher.ResolveSearchPath(envStr);
                        _previousEnvStr   = envStr;
                        _cachedSearchPath = searchPath;
                        return(searchPath);
                    }
                }
            }