2025-03-28 09:49:56 +08:00

93 lines
4.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SuperMap.RealEstate.Launcher_WebSite;
using SuperMap.RealEstate.ServiceModel;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SuperMap.RealEstate.SoftWare
{
public partial class Launcher : SuperMap.RealEstate.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Response.Clear();
this.Response.ContentEncoding = System.Text.Encoding.UTF8;
try
{
string _AppsPath = MapPath("/SoftWare") + "\\";
if (!Directory.Exists(_AppsPath))
Directory.CreateDirectory(_AppsPath);
if (Request["type"] == null)
throw new Exception("请从合法的渠道打开系统");
if (!File.Exists(_AppsPath + "Launcher.exe"))
throw new Exception("SoftWare目录中未部署Launcher.exe请检查配置。");
StringBuilder _StringBuilder = new StringBuilder();
_StringBuilder.AppendLine("[Launcher]");
_StringBuilder.AppendLine("Version:" + GetFileVersion(_AppsPath + "Launcher.exe"));
_StringBuilder.AppendLine("DateTime:" + (DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString()).ToEncrypt());
this.Response.Write(_StringBuilder.ToString());
string _ResponseWriteFile = _AppsPath + "\\Core\\Version.ini.Deploy";
if (!File.Exists(_ResponseWriteFile))
throw new Exception("服务器部署文件不存在,请重新生成!\r\nSoftWare\\Core\\Version.ini.Deploy");
this.Response.WriteFile(_ResponseWriteFile);
LaunchType _LaunchType = (LaunchType)Enum.Parse(typeof(LaunchType), Request["type"], true);
switch (_LaunchType)
{
case LaunchType.Install:
_ResponseWriteFile = _AppsPath + _LaunchType.ToString() + "_Deploy\\Install.ini.Deploy";
if (!File.Exists(_ResponseWriteFile))
{
throw new Exception("服务器部署文件不存在,请重新生成!\r\nSoftWare\\" + _LaunchType.ToString() + "_Deploy\\Config.ini.Deploy");
}
this.Response.WriteFile(_ResponseWriteFile);
break;
case LaunchType.AppRuns:
if (Request["name"] == null)
{
throw new Exception("请从合法的渠道打开系统");
}
_ResponseWriteFile = _AppsPath + _LaunchType.ToString() + "_Deploy\\" + Request["name"] + ".ini.Deploy";
if (!File.Exists(_ResponseWriteFile))
{
throw new Exception("服务器部署文件不存在,请重新生成!\r\nSoftWare\\" + _LaunchType.ToString() + "_Deploy\\" + Request["name"] + ".ini.Deploy");
}
this.Response.WriteFile(_ResponseWriteFile);
break;
default:
throw new Exception("传递了错误的关键字!");
}
}
catch (Exception ex)
{
this.Response.Clear();
StringBuilder _StringBuilder = new StringBuilder();
_StringBuilder.AppendLine("[Error]");
_StringBuilder.Append(ex.Message);
this.Response.Write(_StringBuilder.ToString());
}
this.Response.End();
}
private string GetFileVersion(string filePath)
{
if (!File.Exists(filePath))
return "不存在";
FileVersionInfo _FileVersionInfo = FileVersionInfo.GetVersionInfo(filePath);
if (String.IsNullOrEmpty(_FileVersionInfo.FileVersion))
return "无版本";
else
return _FileVersionInfo.FileVersion.Split(' ')[0];
}
}
}