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",