private static void HandleDirectoryBuildPropsFiles( ILogger logger, DirectoryInfo projectPath, OptionsFile options) { logger.LogInformation($"{AppEmojisConstants.AreaDirectoryBuildProps} Working on Directory.Build.props files"); var rawCodingRulesDistributionProjectTargetBaseUrl = $"{RawCodingRulesDistributionBaseUrl}/{options.ProjectTarget.ToStringLowerCase()}"; DirectoryBuildPropsHelper.HandleFile(logger, "root", rawCodingRulesDistributionProjectTargetBaseUrl, options.UseLatestMinorNugetVersion, projectPath, string.Empty); foreach (var item in options.Mappings.Sample.Paths) { var path = new DirectoryInfo(item); DirectoryBuildPropsHelper.HandleFile(logger, "sample", rawCodingRulesDistributionProjectTargetBaseUrl, options.UseLatestMinorNugetVersion, path, "sample"); } foreach (var item in options.Mappings.Src.Paths) { var path = new DirectoryInfo(item); DirectoryBuildPropsHelper.HandleFile(logger, "src", rawCodingRulesDistributionProjectTargetBaseUrl, options.UseLatestMinorNugetVersion, path, "src"); } foreach (var item in options.Mappings.Test.Paths) { var path = new DirectoryInfo(item); DirectoryBuildPropsHelper.HandleFile(logger, "test", rawCodingRulesDistributionProjectTargetBaseUrl, options.UseLatestMinorNugetVersion, path, "test"); } }
private static void HasTargetFrameworkAndImplicitUsings( bool throwIf, ILogger logger, DirectoryInfo projectPath, string targetFramework) { var foundDirectoryBuildPropsFilesWithImplicitUsings = DirectoryBuildPropsHelper.SearchAllForElement( projectPath, "ImplicitUsings", "enable", SearchOption.TopDirectoryOnly, StringComparison.OrdinalIgnoreCase); if (!foundDirectoryBuildPropsFilesWithImplicitUsings.Any()) { return; } var foundFiles = DotnetCsProjHelper.SearchAllForElement( projectPath, "TargetFramework", targetFramework); if (!foundFiles.Any()) { return; } var sb = new StringBuilder(); var header = $"TargetFramework '{targetFramework}' in .csproj can causes build errors when /Directory.Build.Props has ImplicitUsings enabled, please manually upgrade the following files:"; if (throwIf) { sb.AppendLine(header); } else { logger.LogWarning(header); } foreach (var fileFullName in foundFiles.Select(x => x.FullName)) { if (throwIf) { sb.AppendLine(5, fileFullName); } else { logger.LogWarning($" {fileFullName}"); } } if (throwIf) { throw new DataException(sb.ToString()); } }
private static void MissingRepositoryName( ILogger logger, DirectoryInfo projectPath) { var foundFiles = DirectoryBuildPropsHelper.SearchAllForElement( projectPath, "RepositoryName", "<!-- insert repository name here -->", SearchOption.TopDirectoryOnly); if (!foundFiles.Any()) { return; } logger.LogWarning($"RepositoryName in /{DirectoryBuildPropsHelper.FileName} is not set yet, please fix"); }