Вот что я делаю:
byte[] bytes = File.ReadAllBytes(@Application.StartupPath+"/UpdateMainProgaramApp.exe");
Assembly assembly = Assembly.Load(bytes);
// load the assemly
//Assembly assembly = Assembly.LoadFrom(AssemblyName);
// Walk through each type in the assembly looking for our class
MethodInfo method = assembly.EntryPoint;
if (method != null)
{
// create an istance of the Startup form Main method
object o = assembly.CreateInstance(method.Name);
// invoke the application starting point
try
{
method.Invoke(o, null);
}
catch (TargetInvocationException e)
{
Console.WriteLine(e.ToString());
}
}
Проблема в том, что он выдает TargetInvocationException
- он находит, что метод является основным, но он выдает это исключение, так как в этой строке:
object o = assembly.CreateInstance(method.Name);
o
остается нулевым. Поэтому я немного углубился в эту трассировку стека, и фактическая ошибка такова:
InnerException = {"SetCompatibleTextRenderingDefault следует вызывать перед созданием первого первого объекта IWin32Window в программе"} (это мой перевод, так как он дает мне трассировку стека на половине иврита на половине английского, поскольку мои окна на иврите.)
Что я делаю не так?