113 lines
3.8 KiB
C#
113 lines
3.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Reflection;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows;
|
|||
|
|
|||
|
namespace CMWTAT_DIGITAL
|
|||
|
{
|
|||
|
public static class Program
|
|||
|
{
|
|||
|
|
|||
|
public static bool autoact = false;
|
|||
|
public static bool hiderun = false;
|
|||
|
public static bool expact = false;
|
|||
|
public static bool log2file = false;
|
|||
|
public static bool showhelp = false;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Application Entry Point.
|
|||
|
/// </summary>
|
|||
|
[System.STAThreadAttribute()]
|
|||
|
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
|
|||
|
|
|||
|
public static void Main(string[] startup_args)
|
|||
|
{
|
|||
|
//添加程序集解析事件
|
|||
|
//AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
|
|||
|
//{
|
|||
|
// String resourceName = "CMWTAT_DIGITAL.Res." +
|
|||
|
|
|||
|
// new AssemblyName(args.Name).Name + ".dll";
|
|||
|
|
|||
|
// Console.WriteLine("Load Assembly: " + resourceName);
|
|||
|
|
|||
|
// using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
|
|||
|
// {
|
|||
|
// if (stream == null)
|
|||
|
// return null;
|
|||
|
|
|||
|
// Byte[] assemblyData = new Byte[stream.Length];
|
|||
|
|
|||
|
// stream.Read(assemblyData, 0, assemblyData.Length);
|
|||
|
|
|||
|
// return Assembly.Load(assemblyData);
|
|||
|
// }
|
|||
|
//};
|
|||
|
var loadedAssemblies = new Dictionary<string, Assembly>();
|
|||
|
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
|
|||
|
{
|
|||
|
String resourceName = "CMWTAT_DIGITAL.Res." +
|
|||
|
new AssemblyName(args.Name).Name + ".dll";
|
|||
|
|
|||
|
//Must return the EXACT same assembly, do not reload from a new stream
|
|||
|
if (loadedAssemblies.TryGetValue(resourceName, out Assembly loadedAssembly))
|
|||
|
{
|
|||
|
return loadedAssembly;
|
|||
|
}
|
|||
|
|
|||
|
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
|
|||
|
{
|
|||
|
if (stream == null)
|
|||
|
return null;
|
|||
|
Byte[] assemblyData = new Byte[stream.Length];
|
|||
|
|
|||
|
stream.Read(assemblyData, 0, assemblyData.Length);
|
|||
|
|
|||
|
var assembly = Assembly.Load(assemblyData);
|
|||
|
loadedAssemblies[resourceName] = assembly;
|
|||
|
return assembly;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
foreach (string arg in startup_args)
|
|||
|
{
|
|||
|
Console.WriteLine("arg: " + arg);
|
|||
|
if (arg == "-a" || arg == "--auto")
|
|||
|
{
|
|||
|
Console.WriteLine("AUTO: True");
|
|||
|
autoact = true;
|
|||
|
}
|
|||
|
if (arg == "-h" || arg == "--hide")
|
|||
|
{
|
|||
|
Console.WriteLine("HIDE: True");
|
|||
|
hiderun = true;
|
|||
|
}
|
|||
|
if (arg == "-e" || arg == "--expact")
|
|||
|
{
|
|||
|
Console.WriteLine("EXPACT: True");
|
|||
|
expact = true;
|
|||
|
}
|
|||
|
if (arg == "-l" || arg == "--log")
|
|||
|
{
|
|||
|
Console.WriteLine("LOG: True");
|
|||
|
log2file = true;
|
|||
|
}
|
|||
|
if (arg == "-?" || arg == "--help")
|
|||
|
{
|
|||
|
Console.WriteLine("SHOWHELP: True");
|
|||
|
showhelp = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
CMWTAT_DIGITAL.App app = new CMWTAT_DIGITAL.App();//WPF项目的Application实例,用来启动WPF项目的
|
|||
|
app.InitializeComponent();
|
|||
|
app.Run();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|