| ♥ 0 | Boa tarde, Depois de proceder as devidas alterações para a V10.10 e estando a funcionar no meu posto, ao colocar no cliente não funcionam e apresentam as seguintes mensagens de erro no Event Viewer: Nome do registo:Application Informações da Excepção: System.IO.FileLoadException Evento Xml: Informações da Excepção: System.IO.FileLoadException </Data>
Nome do registo:Application Marcado como spam |
| Resposta privada Boa tarde, Pelo tipo de excepção do erro (System.IO.FileLoadException) dá ideia que o código dentro de vosso AssemblyResolve está a tentar carregar assemblies da pasta errada, ou algo relacionado com a maneria como se está a tentar carregar as mesmas . Ou seja, em ITGO.Import.Program.CurrentDomain_AssemblyResolve, o caminho que está a ser usado deve estar errado, ou não existir nessa máquina, ou pode ser outra coisa. É difícil responder ao certo sem ver o código aí usado, para perceber se está a usar alguma variável de ambiente; se está a tentar ler da pasta x86 mas essa instalação está em 64bits, pelo que a pasta das dlls Primavera será outra; se tem esse caminho caminho configurável de alguma forma, etc. Marcado como spam Comentários Bom dia Ricardo, Tanto na minha máquina como na do cliente tem uma instalação em 64 bits e o caminho é o mesmo. Envio aqui abaixo o codigo: using System;
using System.Windows.Forms; namespace ITGO.Import
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
Application.Run(new Form2(args[0])); Application.Exit();
} ///
/// Resolving Assembly
///
/// Application
/// Resolving Assembly Name
/// Assembly
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assemblyFullName; System.Reflection.AssemblyName assemblyName; assemblyName = new System.Reflection.AssemblyName(args.Name);
assemblyFullName = System.IO.Path.Combine(Environment.GetEnvironmentVariable("PERCURSOSGE100", EnvironmentVariableTarget.Machine), assemblyName.Name + ".dll"); if (System.IO.File.Exists(assemblyFullName))
return System.Reflection.Assembly.LoadFile(assemblyFullName);
else
return null;
}
}
} Bom dia, a variável de ambiente PERCURSOSGE100 está criada no posto em que está a dar erro? Outra coisa, qual a plataforma do Primavera instalada nesse posto? Se for Profissional, a variável de ambiente não é PERCURSOSGE100 mas sim PERCURSOSGP100, mas de uma forma ou de outra, é necessário garantir que a mesma está criada no posto. Assim à primeira vista, sem analisar muito em pormenor, é o que se me ocorre. Por favor, quando partilhar código, tente partilhar se forma que seja mais facilmente legível, e não assim em texto como colocou, se não torna-se mais difícil ajudar. Nem que para isso tenha que anexar o ficheiro onde está o código, desde que fique bem formatado, ajuda sempre mais. Tenho um erro similar, quando vou inicializar a plataforma,
System.IO.FileNotFoundException: 'Could not load file or assembly 'StdBE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=11cd844aca152173' or one of its dependencies. The system cannot find the file specified.' | |
| Resposta privada Olá! Estou com um problema idêntico. A aplicação funcionava em v10, mas deixou de funcionar em v10.10. Depois de resolver o problema da variável de ambiente, a aplicação continua a dar erro ao tentar abrir a plataforma. System.NullReferenceException: 'Object reference not set to an instance of an object.' Com recurso a um breakpoint colocado no método do evento que resolve as dependências, consigo perceber que é pedida a dependência Primavera.Platform.Runtime.XmlSerializers, que é resolvida no caminho C:Program Files (x86)PRIMAVERASG100AplPrimavera.Platform.Runtime.XmlSerializers.dll, mas não é carregada porque não existe na pasta. Obrigado.
P.S.: Já está a ser discutido neste post https://developers.ila.cegid.com/questions/motores-v10/ Marcado como spam Comentários O problema de não conseguir inicializar a plataforma tinha mesmo a ver com a passagem do tipo errado de plataforma. | |
| Resposta privada Obrigado Ricardo, o problema estava mesmo na variável do percurso PERCURSOSGE100, a linha no cliente é professional. Marcado como spam |