public ConfigSettings GetConfig(string directoryOrFile) { string path = NormalizePath(directoryOrFile); var containingDirectory = path; // Path.GetDirectoryName(Path.GetFullPath(path)); while (IsNotRoot(containingDirectory)) { var configLocation = Path.Combine(containingDirectory, "storevil.config"); if (_filesystem.FileExists(configLocation)) return BuildConfigSettings(path, configLocation); var csproj = FindCsProj(containingDirectory); if (csproj != null) { return GetConfigFromCsProj(containingDirectory, csproj); } var parent = Directory.GetParent(containingDirectory); if (parent == null) return ConfigSettings.Default(); containingDirectory = parent.FullName; } return ConfigSettings.Default(); }
private ConfigSettings GetConfigFromCsProj(string containingDirectory, string csproj) { var proj = new CsProjParser(_filesystem.GetFileText(csproj)); var settings = ConfigSettings.Default(); settings.AssemblyLocations = proj.GetAssemblyLocations(); settings.StoryBasePath = containingDirectory; return settings; }