Update packages

This commit is contained in:
Matt Nadareski
2024-12-06 13:20:36 -05:00
parent e8050d582b
commit a6a83b3e76
18 changed files with 73 additions and 154 deletions

View File

@@ -24,6 +24,9 @@
</ItemGroup>
<!-- Support for old .NET versions -->
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`))">
<PackageReference Include="Net30.LinqBridge" Version="1.3.0" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`)) OR $(TargetFramework.StartsWith(`net3`))">
<PackageReference Include="MinValueTupleBridge" Version="0.2.1" />
</ItemGroup>
@@ -38,9 +41,9 @@
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
</ItemGroup>
<ItemGroup>

View File

@@ -3,7 +3,6 @@ using System.IO;
using System.Linq;
using SabreTools.Hashing;
using SabreTools.IO.Extensions;
using SabreTools.Matching;
namespace SabreTools.Core.Tools
{
@@ -18,11 +17,7 @@ namespace SabreTools.Core.Tools
public static bool ConditionalHashEquals(byte[]? firstHash, byte[]? secondHash)
{
// If either hash is empty, we say they're equal for merging
#if NET20
if (Matching.Extensions.IsNullOrEmpty(firstHash) || Matching.Extensions.IsNullOrEmpty(secondHash))
#else
if (firstHash.IsNullOrEmpty() || secondHash.IsNullOrEmpty())
#endif
return true;
// If they're different sizes, they can't match
@@ -58,7 +53,7 @@ namespace SabreTools.Core.Tools
/// <returns>Subfolder path for the given hash</returns>
public static string? GetDepotPath(byte[]? hash, int depth)
{
string? sha1 = ByteArrayExtensions.ByteArrayToString(hash);
string? sha1 = hash.ToHexString();
return GetDepotPath(sha1, depth);
}

View File

@@ -28,10 +28,10 @@
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
</ItemGroup>
</Project>

View File

@@ -75,8 +75,8 @@ namespace SabreTools.DatItems.Formats
public Disk(BaseFile baseFile) : base()
{
SetName(baseFile.Filename);
SetFieldValue<string?>(Models.Metadata.Disk.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
SetFieldValue<string?>(Models.Metadata.Disk.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
SetFieldValue<string?>(Models.Metadata.Disk.MD5Key, baseFile.MD5.ToHexString());
SetFieldValue<string?>(Models.Metadata.Disk.SHA1Key, baseFile.SHA1.ToHexString());
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
}
@@ -94,8 +94,8 @@ namespace SabreTools.DatItems.Formats
{
Filename = this.GetName(),
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Disk.MD5Key)),
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Disk.SHA1Key)),
MD5 = GetStringFieldValue(Models.Metadata.Disk.MD5Key).FromHexString(),
SHA1 = GetStringFieldValue(Models.Metadata.Disk.SHA1Key).FromHexString(),
};
}

View File

@@ -5,7 +5,6 @@ using SabreTools.Core.Tools;
using SabreTools.FileTypes;
using SabreTools.Hashing;
using SabreTools.IO.Extensions;
using SabreTools.Matching;
// TODO: Add item mappings for all fields
namespace SabreTools.DatItems.Formats
@@ -54,8 +53,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("crc", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("crc")]
public string? CRC
{
get { return ByteArrayExtensions.ByteArrayToString(_crc); }
set { _crc = (value == "null" ? ZeroHash.CRC32Arr : ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeCRC32(value))); }
get { return _crc.ToHexString(); }
set { _crc = (value == "null" ? ZeroHash.CRC32Arr : TextHelper.NormalizeCRC32(value).FromHexString()); }
}
/// <summary>
@@ -64,8 +63,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
public string? MD5
{
get { return ByteArrayExtensions.ByteArrayToString(_md5); }
set { _md5 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeMD5(value)); }
get { return _md5.ToHexString(); }
set { _md5 = TextHelper.NormalizeMD5(value).FromHexString(); }
}
/// <summary>
@@ -74,8 +73,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
public string? SHA1
{
get { return ByteArrayExtensions.ByteArrayToString(_sha1); }
set { _sha1 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeSHA1(value)); }
get { return _sha1.ToHexString(); }
set { _sha1 = TextHelper.NormalizeSHA1(value).FromHexString(); }
}
/// <summary>
@@ -84,8 +83,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha256")]
public string? SHA256
{
get { return ByteArrayExtensions.ByteArrayToString(_sha256); }
set { _sha256 = ByteArrayExtensions.StringToByteArray(TextHelper.NormalizeSHA256(value)); }
get { return _sha256.ToHexString(); }
set { _sha256 = TextHelper.NormalizeSHA256(value).FromHexString(); }
}
/// <summary>
@@ -228,19 +227,6 @@ namespace SabreTools.DatItems.Formats
if (Size == null && other.Size != null)
Size = other.Size;
#if NET20
if (Matching.Extensions.IsNullOrEmpty(_crc) && !Matching.Extensions.IsNullOrEmpty(other._crc))
_crc = other._crc;
if (Matching.Extensions.IsNullOrEmpty(_md5) && !Matching.Extensions.IsNullOrEmpty(other._md5))
_md5 = other._md5;
if (Matching.Extensions.IsNullOrEmpty(_sha1) && !Matching.Extensions.IsNullOrEmpty(other._sha1))
_sha1 = other._sha1;
if (Matching.Extensions.IsNullOrEmpty(_sha256) && !Matching.Extensions.IsNullOrEmpty(other._sha256))
_sha256 = other._sha256;
#else
if (_crc.IsNullOrEmpty() && !other._crc.IsNullOrEmpty())
_crc = other._crc;
@@ -252,7 +238,6 @@ namespace SabreTools.DatItems.Formats
if (_sha256.IsNullOrEmpty() && !other._sha256.IsNullOrEmpty())
_sha256 = other._sha256;
#endif
}
/// <summary>
@@ -261,18 +246,6 @@ namespace SabreTools.DatItems.Formats
/// <returns>String representing the suffix</returns>
public string GetDuplicateSuffix()
{
#if NET20
if (!Matching.Extensions.IsNullOrEmpty(_crc))
return $"_{CRC}";
else if (!Matching.Extensions.IsNullOrEmpty(_md5))
return $"_{MD5}";
else if (!Matching.Extensions.IsNullOrEmpty(_sha1))
return $"_{SHA1}";
else if (!Matching.Extensions.IsNullOrEmpty(_sha256))
return $"_{SHA256}";
else
return "_1";
#else
if (!_crc.IsNullOrEmpty())
return $"_{CRC}";
else if (!_md5.IsNullOrEmpty())
@@ -283,7 +256,6 @@ namespace SabreTools.DatItems.Formats
return $"_{SHA256}";
else
return "_1";
#endif
}
/// <summary>
@@ -292,17 +264,10 @@ namespace SabreTools.DatItems.Formats
/// <returns>True if any hash exists, false otherwise</returns>
public bool HasHashes()
{
#if NET20
return !Matching.Extensions.IsNullOrEmpty(_crc)
|| !Matching.Extensions.IsNullOrEmpty(_md5)
|| !Matching.Extensions.IsNullOrEmpty(_sha1)
|| !Matching.Extensions.IsNullOrEmpty(_sha256);
#else
return !_crc.IsNullOrEmpty()
|| !_md5.IsNullOrEmpty()
|| !_sha1.IsNullOrEmpty()
|| !_sha256.IsNullOrEmpty();
#endif
}
/// <summary>
@@ -324,17 +289,10 @@ namespace SabreTools.DatItems.Formats
/// <returns>True if at least one hash is not mutually exclusive, false otherwise</returns>
private bool HasCommonHash(File other)
{
#if NET20
return !(Matching.Extensions.IsNullOrEmpty(_crc) ^ Matching.Extensions.IsNullOrEmpty(other._crc))
|| !(Matching.Extensions.IsNullOrEmpty(_md5) ^ Matching.Extensions.IsNullOrEmpty(other._md5))
|| !(Matching.Extensions.IsNullOrEmpty(_sha1) ^ Matching.Extensions.IsNullOrEmpty(other._sha1))
|| !(Matching.Extensions.IsNullOrEmpty(_sha256) ^ Matching.Extensions.IsNullOrEmpty(other._sha256));
#else
return !(_crc.IsNullOrEmpty() ^ other._crc.IsNullOrEmpty())
|| !(_md5.IsNullOrEmpty() ^ other._md5.IsNullOrEmpty())
|| !(_sha1.IsNullOrEmpty() ^ other._sha1.IsNullOrEmpty())
|| !(_sha256.IsNullOrEmpty() ^ other._sha256.IsNullOrEmpty());
#endif
}
/// <summary>

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
public Media(BaseFile baseFile) : base()
{
SetName(baseFile.Filename);
SetFieldValue<string?>(Models.Metadata.Media.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
SetFieldValue<string?>(Models.Metadata.Media.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
SetFieldValue<string?>(Models.Metadata.Media.SHA256Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA256));
SetFieldValue<string?>(Models.Metadata.Media.MD5Key, baseFile.MD5.ToHexString());
SetFieldValue<string?>(Models.Metadata.Media.SHA1Key, baseFile.SHA1.ToHexString());
SetFieldValue<string?>(Models.Metadata.Media.SHA256Key, baseFile.SHA256.ToHexString());
SetFieldValue<string?>(Models.Metadata.Media.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum ?? []));
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
@@ -58,9 +58,9 @@ namespace SabreTools.DatItems.Formats
{
Filename = this.GetName(),
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.MD5Key)),
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.SHA1Key)),
SHA256 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Media.SHA256Key)),
MD5 = GetStringFieldValue(Models.Metadata.Media.MD5Key).FromHexString(),
SHA1 = GetStringFieldValue(Models.Metadata.Media.SHA1Key).FromHexString(),
SHA256 = GetStringFieldValue(Models.Metadata.Media.SHA256Key).FromHexString(),
SpamSum = System.Text.Encoding.UTF8.GetBytes(GetStringFieldValue(Models.Metadata.Media.SpamSumKey) ?? string.Empty),
};
}

View File

@@ -95,12 +95,12 @@ namespace SabreTools.DatItems.Formats
{
SetName(baseFile.Filename);
SetFieldValue<string?>(Models.Metadata.Rom.DateKey, baseFile.Date);
SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ByteArrayExtensions.ByteArrayToString(baseFile.CRC));
SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ByteArrayExtensions.ByteArrayToString(baseFile.MD5));
SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA1));
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA256));
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA384));
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, ByteArrayExtensions.ByteArrayToString(baseFile.SHA512));
SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, baseFile.CRC.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, baseFile.MD5.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, baseFile.SHA1.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, baseFile.SHA256.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.SHA384Key, baseFile.SHA384.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.SHA512Key, baseFile.SHA512.ToHexString());
SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, baseFile.Size.ToString());
if (baseFile.SpamSum != null)
SetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey, System.Text.Encoding.UTF8.GetString(baseFile.SpamSum));
@@ -129,12 +129,12 @@ namespace SabreTools.DatItems.Formats
Parent = GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
Date = GetStringFieldValue(Models.Metadata.Rom.DateKey),
Size = NumberHelper.ConvertToInt64(GetStringFieldValue(Models.Metadata.Rom.SizeKey)),
CRC = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.CRCKey)),
MD5 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.MD5Key)),
SHA1 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA1Key)),
SHA256 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA256Key)),
SHA384 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA384Key)),
SHA512 = ByteArrayExtensions.StringToByteArray(GetStringFieldValue(Models.Metadata.Rom.SHA512Key)),
CRC = GetStringFieldValue(Models.Metadata.Rom.CRCKey).FromHexString(),
MD5 = GetStringFieldValue(Models.Metadata.Rom.MD5Key).FromHexString(),
SHA1 = GetStringFieldValue(Models.Metadata.Rom.SHA1Key).FromHexString(),
SHA256 = GetStringFieldValue(Models.Metadata.Rom.SHA256Key).FromHexString(),
SHA384 = GetStringFieldValue(Models.Metadata.Rom.SHA384Key).FromHexString(),
SHA512 = GetStringFieldValue(Models.Metadata.Rom.SHA512Key).FromHexString(),
SpamSum = spamSum != null ? System.Text.Encoding.UTF8.GetBytes(spamSum) : null,
};
}

View File

@@ -27,9 +27,9 @@
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
</ItemGroup>
</Project>

View File

@@ -33,9 +33,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
<PackageReference Include="SabreTools.Skippers" Version="1.2.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
<PackageReference Include="SabreTools.Skippers" Version="1.3.0" />
</ItemGroup>
</Project>

View File

@@ -97,11 +97,7 @@ namespace SabreTools.FileTypes.Aaru
return false;
// If the bytes don't match, we don't have an AaruFormat
#if NET20
if (!Matching.Extensions.StartsWith(magicBytes, AaruFormatSignature))
#else
if (!magicBytes.StartsWith(AaruFormatSignature))
#endif
return false;
return true;

View File

@@ -399,7 +399,7 @@ namespace SabreTools.FileTypes.Archives
Size = extractedsize,
CRC = headercrc,
MD5 = headermd5,
SHA1 = ByteArrayExtensions.StringToByteArray(Path.GetFileNameWithoutExtension(this.Filename)),
SHA1 = Path.GetFileNameWithoutExtension(this.Filename).FromHexString(),
Parent = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
};

View File

@@ -285,7 +285,7 @@ namespace SabreTools.FileTypes.Archives
BaseFile baseFile = new()
{
Filename = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
SHA1 = ByteArrayExtensions.StringToByteArray(Path.GetFileNameWithoutExtension(this.Filename)),
SHA1 = Path.GetFileNameWithoutExtension(this.Filename).FromHexString(),
Parent = Path.GetFileNameWithoutExtension(this.Filename).ToLowerInvariant(),
};

View File

@@ -191,44 +191,6 @@ namespace SabreTools.FileTypes
#endif
// Now try to match it to a known signature
#if NET20
if (Matching.Extensions.StartsWith(magic, SevenZipSignature))
{
outFileType = FileType.SevenZipArchive;
}
else if (Matching.Extensions.StartsWith(magic, AaruFormatSignature))
{
outFileType = FileType.AaruFormat;
}
else if (Matching.Extensions.StartsWith(magic, CHDSignature))
{
outFileType = FileType.CHD;
}
else if (Matching.Extensions.StartsWith(magic, GzSignature))
{
outFileType = FileType.GZipArchive;
}
else if (Matching.Extensions.StartsWith(magic, RarSignature)
|| Matching.Extensions.StartsWith(magic, RarFiveSignature))
{
outFileType = FileType.RarArchive;
}
else if (Matching.Extensions.StartsWith(magic, TarSignature)
|| Matching.Extensions.StartsWith(magic, TarZeroSignature))
{
outFileType = FileType.TapeArchive;
}
else if (Matching.Extensions.StartsWith(magic, XZSignature))
{
outFileType = FileType.XZArchive;
}
else if (Matching.Extensions.StartsWith(magic, ZipSignature)
|| Matching.Extensions.StartsWith(magic, ZipSignatureEmpty)
|| Matching.Extensions.StartsWith(magic, ZipSignatureSpanned))
{
outFileType = FileType.ZipArchive;
}
#else
if (magic.StartsWith(SevenZipSignature))
{
outFileType = FileType.SevenZipArchive;
@@ -265,7 +227,6 @@ namespace SabreTools.FileTypes
{
outFileType = FileType.ZipArchive;
}
#endif
return outFileType;
}
@@ -365,13 +326,13 @@ namespace SabreTools.FileTypes
var baseFile = new BaseFile()
{
Size = size,
CRC = hashDict.ContainsKey(HashType.CRC32) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.CRC32]) : null,
MD5 = hashDict.ContainsKey(HashType.MD5) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.MD5]) : null,
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA1]) : null,
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA256]) : null,
SHA384 = hashDict.ContainsKey(HashType.SHA384) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA384]) : null,
SHA512 = hashDict.ContainsKey(HashType.SHA512) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SHA512]) : null,
SpamSum = hashDict.ContainsKey(HashType.SpamSum) ? ByteArrayExtensions.StringToByteArray(hashDict[HashType.SpamSum]) : null,
CRC = hashDict.ContainsKey(HashType.CRC32) ? hashDict[HashType.CRC32].FromHexString() : null,
MD5 = hashDict.ContainsKey(HashType.MD5) ? hashDict[HashType.MD5].FromHexString() : null,
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? hashDict[HashType.SHA1].FromHexString() : null,
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? hashDict[HashType.SHA256].FromHexString() : null,
SHA384 = hashDict.ContainsKey(HashType.SHA384) ? hashDict[HashType.SHA384].FromHexString() : null,
SHA512 = hashDict.ContainsKey(HashType.SHA512) ? hashDict[HashType.SHA512].FromHexString() : null,
SpamSum = hashDict.ContainsKey(HashType.SpamSum) ? hashDict[HashType.SpamSum].FromHexString() : null,
};
// Deal with the input stream

View File

@@ -37,10 +37,10 @@
<ItemGroup>
<PackageReference Include="SabreTools.Hashing" Version="1.4.0" />
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.Matching" Version="1.4.0" />
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
<PackageReference Include="SabreTools.Skippers" Version="1.2.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
<PackageReference Include="SabreTools.Matching" Version="1.5.0" />
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
<PackageReference Include="SabreTools.Skippers" Version="1.3.0" />
</ItemGroup>
</Project>

View File

@@ -2,7 +2,8 @@
<PropertyGroup>
<!-- Assembly Properties -->
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>
net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<LangVersion>latest</LangVersion>
@@ -19,8 +20,13 @@
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<!-- Support for old .NET versions -->
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`))">
<PackageReference Include="Net30.LinqBridge" Version="1.3.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.5.0" />
<PackageReference Include="SabreTools.IO" Version="1.6.1" />
</ItemGroup>
</Project>

View File

@@ -30,9 +30,9 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="SabreTools.Models" Version="1.5.0" />
<PackageReference Include="SabreTools.Serialization" Version="1.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="SabreTools.Models" Version="1.5.5" />
<PackageReference Include="SabreTools.Serialization" Version="1.8.1" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

View File

@@ -58,7 +58,7 @@ namespace SabreTools.Features
}
// Get only files from the inputs
List<ParentablePath> files = PathTool.GetFilesOnly(Inputs, appendparent: true);
List<ParentablePath> files = PathTool.GetFilesOnly(Inputs, appendParent: true);
// Loop over the input files
foreach (ParentablePath file in files)

View File

@@ -145,7 +145,7 @@ namespace SabreTools.Features
}
// Ensure we only have files in the inputs
List<ParentablePath> inputPaths = PathTool.GetFilesOnly(Inputs, appendparent: true);
List<ParentablePath> inputPaths = PathTool.GetFilesOnly(Inputs, appendParent: true);
List<ParentablePath> basePaths = PathTool.GetFilesOnly(GetList(features, BaseDatListValue));
// Ensure the output directory