Nelson Sousa Posted October 10, 2019 at 10:15 PM Report Share #616342 Posted October 10, 2019 at 10:15 PM Olá, Boa noite! Utilizo o C# no V. Studio 2017. Vou precisar utilizar dlls em meu sistema que, apesar de terem o mesmo nome, são compiladas para plataformas diferentes. Vou dar um exemplo: libeay32.dll - esta biblioteca (de terceiros) é compilada em duas plataformas diferentes x86 e x64. O nome permanece o mesmo seja qual for a plataforma. Gostaria de "empacotar" as dlls de cada plataforma em um arquivo de recurso e "desempacotar" logo após verificar em qual plataforma elas irão trabalhar. Ou seja, se o sistema averiguar que o Sistema Operacional é x86, "desempacota" as dlls x86. Se o Sistema Operacional é x64, desempacota as dlls x64. Eu tentei separá-las em pastas diferentes (...\x86\) e (...\x64\) e informar o path no constructor da classe. Porém, como essa dlls são dependências de outra "dll mãe", elas tem por padrão a pasta raiz do EXE ou a pasta system do Windows. Vejam abaixo como ficou o constructor da classe: public ACBrNFe(string eArqConfig = "", string eChaveCrypt = "") : base(Environment.Is64BitProcess ? @"AcbrLib\x64\ACBrNFe64.dll" : @"AcbrLib\x86\ACBrNFe32.dll") { InitializeMethods(); var inicializar = GetMethod<Delegates.NFE_Inicializar>(); var ret = ExecuteMethod(() => inicializar(ToUTF8(eArqConfig), ToUTF8(eChaveCrypt))); CheckResult(ret); } Reparem que as "dlls mães" são as AcbrNFe64.dll e AcbrNFe32.dll. Essas duas utilizam várias dlls por dependência entre elas a libeay32.dll, todas de mesmo nome, porém cada uma com o grupo de dlls de sua respectiva plataforma. Então meu problema é esse: Como distribuir dlls com nomes idênticos mas de plataformas diferentes? Isso sem ter que construir 2 instaladores...rsrsrs. Um Abraço, Nelson Sousa Link to comment Share on other sites More sharing options...
M6 Posted October 14, 2019 at 02:09 PM Report Share #616353 Posted October 14, 2019 at 02:09 PM Creio que o InnoSetup te pode ajudar. Dá uma olhadela aqui: http://www.jrsoftware.org/ishelp/index.php?topic=32vs64bitinstalls 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now