88 lines
3.3 KiB
C#
88 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
|
|
namespace EShang
|
|
{
|
|
public class Update
|
|
{
|
|
/// <summary>
|
|
/// 自动更新程序中间类入口
|
|
/// 入口方法名称LoadAssembly请勿更改
|
|
/// 如有其他功能需要实现请在LoadAssembly方法下进行实现
|
|
/// </summary>
|
|
/// <param name="LoadType">加载类型</param>
|
|
/// <param name="DLLDir">dll文件所在文件夹</param>
|
|
/// <returns></returns>
|
|
public static bool LoadAssembly(string LoadType, string DLLDir)
|
|
{
|
|
string _DLLFilePath = "";
|
|
switch (LoadType)
|
|
{
|
|
//收银机端
|
|
case "AutoUpdateEx":
|
|
if (String.IsNullOrWhiteSpace(DLLDir))
|
|
{
|
|
_DLLFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AutoUpdater.dll");
|
|
}
|
|
else
|
|
{
|
|
_DLLFilePath = Path.Combine(DLLDir, "AutoUpdater.dll");
|
|
}
|
|
if (File.Exists(_DLLFilePath))
|
|
{
|
|
try
|
|
{
|
|
byte[] _File = File.ReadAllBytes(_DLLFilePath);
|
|
Assembly _Assembly = Assembly.Load(_File);////我们要调用的dll文件路径
|
|
Type _Type = _Assembly.GetType("AutoUpdater.MainWindow");//获取类名,必须 命名空间+类名
|
|
(Activator.CreateInstance(_Type) as System.Windows.Window).Show();
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
//服务器端
|
|
case "RunUpdateExe":
|
|
if (String.IsNullOrWhiteSpace(DLLDir))
|
|
{
|
|
_DLLFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin", "RunUpdater.dll");
|
|
}
|
|
else
|
|
{
|
|
_DLLFilePath = Path.Combine(DLLDir, "RunUpdater.dll");
|
|
}
|
|
if (File.Exists(_DLLFilePath))
|
|
{
|
|
try
|
|
{
|
|
byte[] _File = File.ReadAllBytes(_DLLFilePath);
|
|
Assembly _Assembly = Assembly.Load(_File);////我们要调用的dll文件路径
|
|
Type _Type = _Assembly.GetType("RunUpdater.MainWindow");//获取类名,必须 命名空间+类名
|
|
(Activator.CreateInstance(_Type) as System.Windows.Window).Show();
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|