diff --git a/Directory.Build.props b/Directory.Build.props index 99df6446..748c48d8 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -33,7 +33,7 @@ https://github.com/sharparchitecture/Sharp-Architecture/raw/master/Artefacts/Documentation/icon.png http://sharparchitecture.github.io/ false - https://github.com/sharparchitecture/Sharp-Architecture/releases/tag/6.0.0 + https://github.com/sharparchitecture/Sharp-Architecture/releases/tag/6.1.1 true True snupkg diff --git a/SharpArch.AutoLoad.DotSettings b/SharpArch.AutoLoad.DotSettings index d6f4e079..26a3609c 100644 --- a/SharpArch.AutoLoad.DotSettings +++ b/SharpArch.AutoLoad.DotSettings @@ -371,6 +371,7 @@ FluentAssertions.AssertionExtensions.Should($EXPR$).NotBeNull() True 3 + Never True @@ -404,6 +405,7 @@ FluentAssertions.AssertionExtensions.Should($EXPR$).NotBeNull() True True + True True True True diff --git a/Src/SharpArch.Infrastructure/Caching/DependencyList.cs b/Src/SharpArch.Infrastructure/Caching/DependencyList.cs index 645e4d92..965f86d9 100644 --- a/Src/SharpArch.Infrastructure/Caching/DependencyList.cs +++ b/Src/SharpArch.Infrastructure/Caching/DependencyList.cs @@ -19,7 +19,7 @@ public class DependencyList private readonly IFileSystem _fileSystem; private string _basePath; - + public static DependencyList WithPathPrefix([NotNull] string basePath, IFileSystem fileSystem = null) { if (string.IsNullOrEmpty(basePath)) throw new ArgumentException("Value cannot be null or empty.", nameof(basePath)); @@ -126,13 +126,15 @@ private string GetCodeBasePath() public static string GetAssemblyCodeBasePath([NotNull] Assembly assembly) { if (assembly == null) throw new ArgumentNullException(nameof(assembly)); + + string path = null; #if NET5_0 - var uri = new UriBuilder(assembly.Location); -#else + path = assembly.Location; +#else var uri = new UriBuilder(assembly.CodeBase); -#endif - var uriPath = Uri.UnescapeDataString(uri.Path); - return Path.GetDirectoryName(uriPath); + path = Uri.UnescapeDataString(uri.Path); +#endif + return Path.GetDirectoryName(path); } /// @@ -157,8 +159,8 @@ private string FindFile(string path) if (_fileSystem.FileExists(codePath)) return codePath; // try with .dll extension added - var dllPath = path.IndexOf(".dll", StringComparison.InvariantCultureIgnoreCase) == -1 - ? path + ".dll" + var dllPath = path.IndexOf(".dll", StringComparison.InvariantCultureIgnoreCase) == -1 + ? path + ".dll" : path; if (_fileSystem.FileExists(dllPath)) return dllPath; diff --git a/VersionHistory.txt b/VersionHistory.txt index f8816fcc..5645d234 100644 --- a/VersionHistory.txt +++ b/VersionHistory.txt @@ -1,3 +1,10 @@ +======================== +S#arp 6.1.1 +======================== + +FIXES: + * #245: Exception in DependencyList on .NET 5/Linux + ======================== S#arp 6.1 ======================== diff --git a/appveyor.yml b/appveyor.yml index 3641c593..e7581d62 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -34,9 +34,10 @@ cache: install: - ps: ./dotnet-install.ps1 -Version 2.2.100 -InstallDir "C:\Program Files\dotnet" - ps: ./mssql-setup.ps1 + - ps: dotnet tool install Cake.Tool --version 1.1.0 --global build_script: - - ps: ./build.ps1 -Verbosity Verbose + - ps: dotnet cake test: off diff --git a/build.cake b/build.cake index d37241ec..fa2c1e06 100644 --- a/build.cake +++ b/build.cake @@ -1,18 +1,17 @@ // ADDINS -#addin nuget:?package=Cake.Coveralls&version=0.10.2 -#addin nuget:?package=Cake.FileHelpers&version=3.3.0 -#addin nuget:?package=Cake.Incubator&version=5.1.0 -#addin nuget:?package=Cake.Issues&version=0.9.1 -#addin nuget:?package=Cake.AppVeyor&version=4.0.0 +#addin nuget:?package=Cake.Coveralls&version=1.0.1 +#addin nuget:?package=Cake.FileHelpers&version=4.0.1 +//#addin nuget:?package=Cake.Issues&version=0.9.1 +#addin nuget:?package=Cake.AppVeyor&version=5.0.1 #addin nuget:?package=Cake.ReSharperReports&version=0.11.1 // TOOLS #tool nuget:?package=GitReleaseManager&version=0.11.0 -#tool nuget:?package=GitVersion.CommandLine&version=5.5.1 +#tool nuget:?package=GitVersion.CommandLine&version=5.6.7 #tool nuget:?package=coveralls.io&version=1.4.2 #tool nuget:?package=OpenCover&version=4.7.922 -#tool nuget:?package=ReportGenerator&version=4.8.1 -//#tool nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2018.3.4 +#tool nuget:?package=ReportGenerator&version=4.8.7 +#tool nuget:?package=JetBrains.ReSharper.CommandLineTools&version=2020.3.4 // ARGUMENTS var target = Argument("target", "Default"); @@ -60,7 +59,7 @@ var milestone = semVersion.MajorMinorPatch; var artifactsDir = "./Drops"; var artifactsDirAbsolutePath = MakeAbsolute(Directory(artifactsDir)); -var testCoverageOutputFile = artifactsDir + "/OpenCover.xml"; +var testCoverageOutputFile = new FilePath(artifactsDir + "/OpenCover.xml"); var codeCoverageReportDir = artifactsDir + "/CodeCoverageReport"; var codeInspectionsOutputFile = artifactsDir + "/Inspections/CodeInspections.xml"; var duplicateFinderOutputFile = artifactsDir + "/Inspections/CodeDuplicates.xml"; @@ -68,7 +67,7 @@ var duplicateFinderOutputFile = artifactsDir + "/Inspections/CodeDuplicates.xml" var packagesDir = artifactsDir + "/packages"; var srcDir = "./Src"; var testsRootDir = srcDir + "/tests"; -var solutionFile = srcDir + "/SharpArch.sln"; +var solutionFile = new FilePath(srcDir + "/SharpArch.sln"); var samplesDir = "./Samples"; var coverageFilter="+[SharpArch*]* -[SharpArch.Tests*]* -[SharpArch.Xunit*]* -[SharpArch.Infrastructure]SharpArch.Infrastructure.Logging.*"; @@ -110,7 +109,7 @@ Task("UpdateAppVeyorBuildNumber") Task("Restore") - .DoesForEach(GetFiles(solutionFile).Union(GetFiles($"{samplesDir}/**/*.sln")), + .DoesForEach(GetFiles(solutionFile.ToString()).Union(GetFiles($"{samplesDir}/**/*.sln")), (sln) => { Information("Running in {0}", sln.GetDirectory().FullPath); DotNetCoreRestore(sln.GetDirectory().FullPath); @@ -155,7 +154,7 @@ Task("InspectCode") Task("RunXunitTests") - .DoesForEach(GetFiles(solutionFile).Union(GetFiles($"{samplesDir}/**/*.sln")), + .DoesForEach(GetFiles(solutionFile.ToString()).Union(GetFiles($"{samplesDir}/**/*.sln")), (testProj) => { var projectPath = testProj.GetDirectory(); var projectFilename = testProj.GetFilenameWithoutExtension(); @@ -214,7 +213,10 @@ Task("CleanPreviousTestResults") DeleteFile(testCoverageOutputFile); DeleteFiles(artifactsDir + "/*.trx"); if (DirectoryExists(codeCoverageReportDir)) - DeleteDirectory(codeCoverageReportDir, recursive: true); + DeleteDirectory(codeCoverageReportDir, new DeleteDirectorySettings{ + Recursive = true, + Force = true + }); }); @@ -251,8 +253,8 @@ Task("Build") var slnPath = solutionFile.GetDirectory().FullPath; var sln = solutionFile.GetFilenameWithoutExtension(); if (isReleaseBuild) { - Information("Running {0} {1} build for code coverage", sln, "Debug"); - // need Debug build for code coverage + Information("Running {0} {1} build to calculate code coverage", sln, "Debug"); + // need Debug mode build for code coverage calculation DotNetCoreBuild(slnPath, new DotNetCoreBuildSettings { NoRestore = true, Configuration = "Debug",