/// <summary> /// Searches parent directories for <paramref name="name"/> the first file matching Foo.sln. /// </summary> /// <param name="name">The assembly.</param> /// <param name="sln">The <see cref="File"/> if found.</param> /// <returns>A value indicating if a file was found.</returns> public static bool TryFind(string name, out FileInfo sln) { var assembly = Assembly.GetCallingAssembly(); var dll = new FileInfo(new Uri(assembly.CodeBase, UriKind.Absolute).LocalPath); return(CodeFactory.TryFindFileInParentDirectory(dll.Directory, name, out sln)); }
/// <summary> /// Searches parent directories for <paramref name="name"/> the first file matching Foo.sln. /// </summary> /// <param name="name">The assembly.</param> /// <param name="sln">The <see cref="File"/> if found.</param> /// <returns>A value indicating if a file was found.</returns> public static bool TryFind(string name, [NotNullWhen(true)] out FileInfo?sln) { sln = null; return(Assembly.GetCallingAssembly().CodeBase is { } codeBase&& new FileInfo(new Uri(codeBase, UriKind.Absolute).LocalPath) is { } dll&& CodeFactory.TryFindFileInParentDirectory(dll.Directory, name, out sln)); }
/// <summary> /// Searches parent directories for <paramref name="assembly"/> the first file matching *.sln. /// </summary> /// <param name="assembly">The <see cref="Assembly"/>.</param> /// <param name="sln">The <see cref="File"/> if found.</param> /// <returns>A value indicating if a file was found.</returns> public static bool TryFind(Assembly assembly, [NotNullWhen(true)] out FileInfo?sln) { sln = null; return(assembly.CodeBase is { } codeBase&& new FileInfo(new Uri(codeBase, UriKind.Absolute).LocalPath) is { } dll&& CodeFactory.TryFindFileInParentDirectory(dll.Directory, "*.sln", out sln)); }
/// <summary> /// Searches parent directories for <paramref name="name"/> the first file matching Foo.sln. /// </summary> /// <param name="name">The name of the sln file.</param> /// <returns>The solution file.</returns> public static FileInfo Find(string name) { if (Assembly.GetCallingAssembly().CodeBase is { } codeBase&& new FileInfo(new Uri(codeBase, UriKind.Absolute).LocalPath) is { } dll&& CodeFactory.TryFindFileInParentDirectory(dll.Directory, name, out var sln)) { return(sln); } throw new InvalidOperationException("Did not find a .sln file named: " + name); }
/// <summary> /// Searches parent directories for <paramref name="name"/> the first file matching Foo.sln. /// </summary> /// <param name="name">The assembly.</param> /// <returns>The solution file.</returns> public static FileInfo Find(string name) { var assembly = Assembly.GetCallingAssembly(); var dll = new FileInfo(new Uri(assembly.CodeBase, UriKind.Absolute).LocalPath); if (CodeFactory.TryFindFileInParentDirectory(dll.Directory, name, out var sln)) { return(sln); } throw new InvalidOperationException("Did not find a file named: " + name); }
/// <summary> /// Searches parent directories for <paramref name="assembly"/> the first file matching *.sln. /// </summary> /// <param name="assembly">The assembly.</param> /// <param name="sln">The <see cref="File"/> if found.</param> /// <returns>A value indicating if a file was found.</returns> public static bool TryFind(Assembly assembly, out FileInfo sln) { if (assembly?.CodeBase == null) { sln = null; return(false); } var dll = new FileInfo(new Uri(assembly.CodeBase, UriKind.Absolute).LocalPath); return(CodeFactory.TryFindFileInParentDirectory(dll.Directory, "*.sln", out sln)); }