Fórum
Ver pergunta

Carregar dll Epplus na v10   

133 visualizações
1
0

Bom dia, eu estou a usar a funcionalidade Epplus para criar e ler ficheiros excel numa das minhas classes no entanto quando tento executar a mesma é demonstrado um erro que não consegue carregar o ficheiro.

Já foi registada a Dll na máquina em questão mas mesmo assim demonstra o erro abaixo.

Estou a usar a Framework 4.7.2 e a utilizar a versão do Epplus compatível com a versão da Framewrok.

Não foi possível carregar o ficheiro ou assemblagem ‘EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1’ ou uma das respectivas dependências. O sistema não conseguiu localizar o ficheiro especificado.

Alguém já teve esta situação?

Faça login para poder traduzir
V10
Marcado como spam
Criado há 6 anos e 4 meses carlosnobre
c
carlosnobre Iniciante
2 respostas
0
Resposta privada

Boa tarde Sergio,

Já adicionei o assemblyResolve mas mesmo assim está  a dar-me o erro.

AssemblyResolve.

public class Geral
{
[STAThread]
static void Main()
{

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);

}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assemblyFullName;
System.Reflection.AssemblyName assemblyName;

const string PRIMAVERA_FOLDER = "PRIMAVERA\SG100\Apl";

assemblyName = new System.Reflection.AssemblyName(args.Name);
assemblyFullName = System.IO.Path.Combine(System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), PRIMAVERA_FOLDER), assemblyName.Name + ".dll");

if (System.IO.File.Exists(assemblyFullName))
return System.Reflection.Assembly.LoadFile(assemblyFullName);
else
return null;
}
}

Class que chama a dll do Epplus.

public class ClsProcess:Geral
{

 

Faça login para poder traduzir
Marcado como spam
Criado há 6 anos e 4 meses carlosnobre
c
carlosnobre Iniciante
    Comentários
    O assembly resolver que tens, só carrega as DLL que estejam na pasta "...\PRIMAVERA\SG100\Apl". A Epplus está nessa pasta? Podes alterar o assembly resolver, para carregar a Epplus de uma directoria especifica.
    6 anos e 4 meses
    manuelquelhas
      O manuel tem razão
      6 anos e 4 meses
      sergiosereno
        0
        Resposta privada

        Partindo principio que está a usar a assembly dentro de um projecto de extensibilidade e ela (Epplus) não está a ser distribuida na pasta APLmas sim para outra localização então vai ser necessário montrar um assembly resolver.

        https://developers.ila.cegid.com/?s=resolver&post=4734

        Abraço

        Faça login para poder traduzir
        Marcado como spam
        Criado há 6 anos e 4 meses sergiosereno
        sergiosereno Most Valuable Professional