Updated hosts to prevent crash when Zune is not installed

This commit is contained in:
Yoshi Askharoun
2022-07-13 18:44:45 -05:00
parent cd84587487
commit b3f67e41c5
2 changed files with 35 additions and 31 deletions
+18 -15
View File
@@ -13,7 +13,7 @@ namespace ZuneHost.Wpf
/// </summary>
public partial class MainWindow : Window
{
string _zuneProgramFolder;
DirectoryInfo _zuneProgramDir;
string decompResultDir = Path.Combine(Environment.CurrentDirectory, "DecompileResults");
string dataMapDir = Path.Combine(Environment.CurrentDirectory, "DataMappings");
@@ -33,25 +33,28 @@ namespace ZuneHost.Wpf
string strArgs = string.Join(" ", args.ToArray());
// Make sure that ZuneDBApi can find all the Zune native libraries
_zuneProgramFolder = Path.Combine(
_zuneProgramDir = new(Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
"Zune");
foreach (var info in new DirectoryInfo(_zuneProgramFolder).GetFileSystemInfos())
"Zune"));
if (_zuneProgramDir.Exists)
{
if (info is DirectoryInfo dirInfo)
foreach (var info in _zuneProgramDir.GetFileSystemInfos())
{
CopyAll(dirInfo, new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, dirInfo.Name)));
}
else if (info is FileInfo fileInfo)
{
string fileName = fileInfo.Name;
if (fileInfo.Extension == ".dll")
if (info is DirectoryInfo dirInfo)
{
string targetPath = Path.Combine(Environment.CurrentDirectory, fileName);
if (!File.Exists(targetPath) || fileName == "ZuneDbApi.dll")
fileInfo.CopyTo(targetPath);
CopyAll(dirInfo, new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, dirInfo.Name)));
}
}
else if (info is FileInfo fileInfo)
{
string fileName = fileInfo.Name;
if (fileInfo.Extension == ".dll")
{
string targetPath = Path.Combine(Environment.CurrentDirectory, fileName);
if (!File.Exists(targetPath) || fileName == "ZuneDbApi.dll")
fileInfo.CopyTo(targetPath);
}
}
}
}
IrisApp.DebugSettings.UseDecompiler = false;
+17 -16
View File
@@ -6,34 +6,35 @@ namespace ZuneHost
{
internal class Program
{
static string _zuneProgramFolder;
static DirectoryInfo _zuneProgramDir;
[STAThread]
static int Main(string[] args)
{
Console.WriteLine("Creating splash window...");
string strArgs = string.Join(" ", args);
// Make sure that ZuneDBApi can find all the Zune native libraries
Console.WriteLine("Copying Zune files...");
_zuneProgramFolder = Path.Combine(
_zuneProgramDir = new(Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
"Zune");
foreach (var info in new DirectoryInfo(_zuneProgramFolder).GetFileSystemInfos())
"Zune"));
if (_zuneProgramDir.Exists)
{
if (info is DirectoryInfo dirInfo)
foreach (var info in _zuneProgramDir.GetFileSystemInfos())
{
CopyAll(dirInfo, new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, dirInfo.Name)));
}
else if (info is FileInfo fileInfo)
{
string fileName = fileInfo.Name;
if (fileInfo.Extension == ".dll")
if (info is DirectoryInfo dirInfo)
{
string targetPath = Path.Combine(Environment.CurrentDirectory, fileName);
if (!File.Exists(targetPath) || fileName == "ZuneDbApi.dll")
fileInfo.CopyTo(targetPath);
CopyAll(dirInfo, new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, dirInfo.Name)));
}
else if (info is FileInfo fileInfo)
{
string fileName = fileInfo.Name;
if (fileInfo.Extension == ".dll")
{
string targetPath = Path.Combine(Environment.CurrentDirectory, fileName);
if (!File.Exists(targetPath) || fileName == "ZuneDbApi.dll")
fileInfo.CopyTo(targetPath);
}
}
}
}