/// <summary> /// 获取 Nuget 包信息列表 /// </summary> /// <returns>Nuget 包信息列表</returns> public IEnumerable <NugetInfo> GetNugetInfos() { if (!IsGoodFormat()) { throw new InvalidOperationException("无法在格式异常的配置文件中读取 Nuget 信息。"); } var nugetInfoList = new List <NugetInfo>(); var packageReferences = CsProj.GetPackageReferences(_xDocument); foreach (var packageReference in packageReferences) { var nugetName = GetNugetName(packageReference); var nugetVersion = GetNugetVersion(packageReference); if (string.IsNullOrWhiteSpace(nugetName) || string.IsNullOrWhiteSpace(nugetVersion)) { continue; } nugetInfoList.Add(new NugetInfo(nugetName, nugetVersion)); } foreach (var nugetInfoReference in CsProj.GetNugetInfoReferences(_xDocument)) { var nugetInfo = CsProj.GetNugetInfoFromNugetInfoReference(nugetInfoReference, _csProjPath); nugetInfoList.Add(nugetInfo); } return(nugetInfoList); }
protected override bool FixDocumentByStrategy(NugetFixStrategy nugetFixStrategy) { var packageReferences = CsProj.GetPackageReferences(Document).Where(x => x.Attribute(CsProj.IncludeAttribute).Value == nugetFixStrategy.NugetName); var nugetInfoReferences = CsProj.GetNugetInfoReferences(Document).Where(x => CsProj.GetNugetInfoFromNugetInfoReference(x).Name == nugetFixStrategy.NugetName); if (!packageReferences.Any() && !nugetInfoReferences.Any()) { return(false); } if (nugetFixStrategy.NugetVersion == NugetVersion.IgnoreFix) { Log = StringSplicer.SpliceWithNewLine(Log, $" - 根据策略,忽略 {nugetFixStrategy.NugetName} 存在的问题"); return(true); } if (packageReferences.Any()) { FixPackageReferences(packageReferences, nugetFixStrategy); DeleteNugetInfoReferences(nugetInfoReferences); } else { FixNugetInfoReferences(nugetInfoReferences, nugetFixStrategy); } return(true); }