Renamed ApplicationArguments, improved errorhandling in AssemblyFileInfo, changed separator in ReleaseEntry,

This commit is contained in:
2018-03-21 22:06:26 +01:00
parent 80a0ea9dd9
commit b2ef60a595
9 changed files with 43 additions and 558 deletions

View File

@ -21,20 +21,22 @@ namespace KattekerCreator
using (var resourceInfo = new ResourceInfo())
{
resourceInfo.Load(fileName);
if (resourceInfo.ResourceTypes.All(x => x.ResourceType != Kernel32.ResourceTypes.RT_VERSION)) return;
var versionResource = (VersionResource) resourceInfo[Kernel32.ResourceTypes.RT_VERSION].First();
var stringFileInfo = ((StringFileInfo) versionResource[nameof(StringFileInfo)]).Strings.FirstOrDefault()
.Value;
var stringFileInfo = ((StringFileInfo) versionResource[nameof(StringFileInfo)]).Strings
.FirstOrDefault().Value;
AssemblyIconPath = GetAssemblyIcon(fileName, tempDir);
if (stringFileInfo.Strings.ContainsKey("CompanyName"))
_company = stringFileInfo.Strings["CompanyName"].StringValue;
_company = stringFileInfo.Strings["CompanyName"].StringValue.TrimEnd('\0');
if (stringFileInfo.Strings.ContainsKey("FileDescription"))
_description = stringFileInfo.Strings["FileDescription"].StringValue;
_description = stringFileInfo.Strings["FileDescription"].StringValue.TrimEnd('\0');
if (stringFileInfo.Strings.ContainsKey("LegalCopyright"))
_copyright = stringFileInfo.Strings["LegalCopyright"].StringValue;
_copyright = stringFileInfo.Strings["LegalCopyright"].StringValue.TrimEnd('\0');
if (stringFileInfo.Strings.ContainsKey("ProductName"))
_productName = stringFileInfo.Strings["ProductName"].StringValue;
_productName = stringFileInfo.Strings["ProductName"].StringValue.TrimEnd('\0');
if (!stringFileInfo.Strings.ContainsKey("ProductVersion")) return;
AssemblyVersion = GetSemanticVersion(stringFileInfo.Strings["ProductVersion"].StringValue);
AssemblyVersion =
GetSemanticVersion(stringFileInfo.Strings["ProductVersion"].StringValue.TrimEnd('\0'));
}
}
@ -82,12 +84,12 @@ namespace KattekerCreator
private static SemanticVersion GetSemanticVersion(string productVersion)
{
if (!SemanticVersion.TryParse(productVersion, out var semanticVersion))
{
Version.TryParse(productVersion, out var version);
return SemanticVersion.Parse(version.ToString(3));
}
return semanticVersion?.Change(build: string.Empty);
productVersion = productVersion.Replace(',', '.');
if (SemanticVersion.TryParse(productVersion, out var semanticVersion))
return semanticVersion?.Change(build: string.Empty);
Version.TryParse(productVersion, out var version);
return SemanticVersion.Parse(version.ToString(3));
}
}
}