public string GetSampleExecutionSource() { string executor; if (_samplesDirectory.Contains("aspnet")) { executor = $"C:\\Program Files{(Environment.Is64BitProcess ? string.Empty : " (x86)")}\\IIS Express\\iisexpress.exe"; } else if (IsCoreClr()) { executor = EnvironmentTools.IsWindows() ? "dotnet.exe" : "dotnet"; } else { var appFileName = $"{FullSampleName}.exe"; executor = Path.Combine(GetSampleApplicationOutputDirectory(), appFileName); if (!File.Exists(executor)) { throw new Exception($"Unable to find executing assembly at {executor}"); } } return(executor); }
public string GetDotNetTest() { if (EnvironmentTools.IsWindows() && !IsCoreClr()) { string filePattern = @"C:\Program Files (x86)\Microsoft Visual Studio\{0}\{1}\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"; List <Tuple <string, string> > lstTuple = new List <Tuple <string, string> > { Tuple.Create("2019", "Enterprise"), Tuple.Create("2019", "Professional"), Tuple.Create("2019", "Community"), Tuple.Create("2017", "Enterprise"), Tuple.Create("2017", "Professional"), Tuple.Create("2017", "Community"), }; foreach (Tuple <string, string> tuple in lstTuple) { var tryPath = string.Format(filePattern, tuple.Item1, tuple.Item2); if (File.Exists(tryPath)) { return(tryPath); } } } return(GetDotnetExe()); }
public string GetProfilerPath() { if (_profilerFileLocation == null) { string extension = EnvironmentTools.IsWindows() ? "dll" : "so"; string fileName = $"Datadog.Trace.ClrProfiler.Native.{extension}"; var directory = GetSampleApplicationOutputDirectory(); var relativePath = Path.Combine( "profiler-lib", fileName); _profilerFileLocation = Path.Combine( directory, relativePath); // TODO: get rid of the fallback options when we have a consistent convention if (!File.Exists(_profilerFileLocation)) { _output?.WriteLine($"Attempt 1: Unable to find profiler at {_profilerFileLocation}."); // Let's try the executing directory, as dotnet publish ignores the Copy attributes we currently use _profilerFileLocation = Path.Combine( GetExecutingProjectBin(), relativePath); } if (!File.Exists(_profilerFileLocation)) { _output?.WriteLine($"Attempt 2: Unable to find profiler at {_profilerFileLocation}."); // One last attempt at the actual native project directory _profilerFileLocation = Path.Combine( GetProfilerProjectBin(), fileName); } if (!File.Exists(_profilerFileLocation)) { throw new Exception($"Attempt 3: Unable to find profiler at {_profilerFileLocation}"); } _output?.WriteLine($"Found profiler at {_profilerFileLocation}."); } return(_profilerFileLocation); }