Guest User

Untitled

a guest
May 25th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. static void Main()
  2. {
  3. Application.EnableVisualStyles();
  4. Application.SetCompatibleTextRenderingDefault(false);
  5.  
  6. //Este handler tem que ser adicionado antes de existir qualquer referência para classes existentes nos Interop's,
  7. //isto é, no método Main() da aplicação NÃO PODERÁ EXISTIR DECLARAÇÕES DE VARIÁVEIS DE TIPOS EXISTENTES NOS INTEROPS.
  8. //Com este método, na pasta da aplicação não deverão existir os Interops e as referências para os mesmos deverão ser
  9. //adicionadas com Copy Local = False e Specific Version = false.
  10. AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
  11.  
  12. Application.Run(new Form1());
  13. }
  14.  
  15. /// <summary>
  16. /// Método para resolução das assemblies.
  17. /// </summary>
  18. /// <param name="sender">Application</param>
  19. /// <param name="args">Resolving Assembly Name</param>
  20. /// <returns>Assembly</returns>
  21. static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
  22. {
  23. string assemblyFullName;
  24.  
  25. System.Reflection.AssemblyName assemblyName;
  26.  
  27. const string PRIMAVERA_COMMON_FILES_FOLDER = "PRIMAVERA\SG900";
  28.  
  29. assemblyName = new System.Reflection.AssemblyName(args.Name);
  30. assemblyFullName = System.IO.Path.Combine(System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86), PRIMAVERA_COMMON_FILES_FOLDER), assemblyName.Name + ".dll");
  31.  
  32. if (System.IO.File.Exists(assemblyFullName))
  33. return System.Reflection.Assembly.LoadFile(assemblyFullName);
  34. else
  35. return null;
  36. }
Add Comment
Please, Sign In to add comment