/// <summary> /// 检查文件格式是否正常 /// </summary> /// <returns>检查结果</returns> protected override bool CheckFormat() { if (!base.CheckFormat()) { return(false); } switch (NugetConfig.GetNugetConfigType(FilePath)) { case NugetConfigType.PackagesConfig: _nugetConfigParser = new PackagesConfigParser(Document); break; case NugetConfigType.CsProj: _nugetConfigParser = new CsProjParser(Document, FilePath); break; case NugetConfigType.Unknown: ErrorMessage = $"无法判断 {FilePath} 是哪种类型的 Nuget 配置文件"; return(false); default: throw new ArgumentOutOfRangeException(); } if (!_nugetConfigParser.IsGoodFormat()) { ErrorMessage = CreateFormatErrorMessage(_nugetConfigParser.ExceptionMessage); return(false); } return(true); }
/// <summary> /// 构造一个 Nuget 配置文件修复器 /// </summary> /// <param name="configPath">Nuget 配置文件路径</param> public NugetConfigRepairer([NotNull] string configPath, [NotNull] IEnumerable <NugetFixStrategy> nugetFixStrategies) { _nugetFixStrategies = nugetFixStrategies ?? throw new ArgumentNullException(nameof(nugetFixStrategies)); _xDocument = new XmlReader(configPath).Document; _configPath = configPath; switch (NugetConfig.GetNugetConfigType(configPath)) { case NugetConfigType.PackagesConfig: _nugetConfigFixHelper = new PackagesConfigFixHelper(_xDocument, _nugetFixStrategies); break; case NugetConfigType.CsProj: _nugetConfigFixHelper = new CsProjFixHelper(_xDocument, configPath, _nugetFixStrategies); break; case NugetConfigType.Unknown: Log = $"无法判断 {configPath} 是哪种类型的 Nuget 配置文件"; break; default: throw new ArgumentOutOfRangeException(); } }