EXE varijanta; problemi s lokacijom DLL-a

Jan 25, 2013 at 9:53 AM

Koristim EXE varijantu.

Certifikat naziva "FISKAL 1" uredno je spremljen u certificat store-u (i pozivanje istog preko imena iz koda radi).

Problemi:

1. Ako runnam EXE (recimo s parametrom GenerirajZki) tako da kao zadnji parametar navedem ime certifikata, vraća error "Certifikat nije pronađen". Zašto? (Kada navedem path i zaporku, uredno radi.)

2. Je li nužno da DLL bude u istom folderu kao i EXE? Nije li moguće primjerice sve DLL-ove staviti u System32 i natjerati EXE da potraži DLL? Pretpostavljam da nije, ali čisto da budem siguran.

Popratno pitanje koje se tiče lokacije datoteka:

3. Kada iz Foxa buildam program koji direktno koristi assembly (pomoću Mladenovog wwDotNetBridge-a), koji je uvjet za lokaciju datoteka? Jer, ako DLL-ove preselim u System32, build ne prolazi. Ima neka caka oko toga?

Coordinator
Jan 25, 2013 at 10:01 AM

Ovo su primjeri pozivanja za EXE za ZKI i tako bi to moralo raditi:

Primjer pozivanja:
Raverus.FiskalizacijaDEV.EXE.exe GenerirajZki "44718633471" "22.10.2012 18:04:26" "1" "11" "12" "125.25" "FISKAL 1"
Raverus.FiskalizacijaDEV.EXE.exe GenerirajZki "44718633471" "22.10.2012 18:04:26" "1" "11" "12" "125.25" "D:\Users\Nino\Desktop\Fiskalizacija\MojCert.pfx" "PASSWORD"

"Certifikat nije pronađen" znači da se certifikat, iz nekog razloga, ne može učitati (dohvatiti) - da li ti radi Sample.exe ? Ili FDev Explorer? Ako oni rade, onda ti negdje griješiš :)

 

Dobra je praksa da se DLL ne stavlja u System32, nego da ostane u istom direktoriju gdje su i sve ostale datoteke koje neki program koristi; može se to natjerati i tako, ali, nije preporuka ("dll hell").

 

Za 3. pitanje moraš čekati Mladena, ja to nemam pojma :)

 


Jan 25, 2013 at 10:56 AM

Sample.exe radi (ali samo kada stavim svoj OIB, kakav je i u certifikatu, što je ok). FDev isto. Drugi poziv EXE-a radi, ali prvi ne. Užasno čudno, rekao bih, no gotovo nemoguće da ja igdje griješim. Doslovce copypejstam gornju liniju, stavim svoj OIB, a error svejedno skoči. :-/

I još jedna čudna stvar. EXE GenerirajZki (ovaj drugi, je li) uredno vraća ZKI čak i ako navedemo neki random OIB (umjesto onog koji je u certifikatu). Zašto?

Coordinator
Jan 25, 2013 at 11:00 AM

OIB se ne kontrolira kod generiranja ZKI, možeš staviti bilo šta, jedino je bitno da OIB bude isti kao i u certifikatu kada šalješ račune u CIS.

Nemam baš neku ideju zašto ti ne bi radilo pozivanje iz EXE kada ideš preko "FISKAL 1" - da li ti druge stvari iz EXE-a rade kada pozivaš po nazivu certifikata?

Jan 25, 2013 at 11:23 AM

Ne, pozivanje na taj način nikad mi nije radilo, niti na pc-ju niti na serveru.

Coordinator
Jan 25, 2013 at 11:24 AM

A imaš li zadnju verziju? Da li si nešto podešavao kroz config datoteku?

Jan 25, 2013 at 12:05 PM

Imao si pravo, moja je greška. Sorry. 0:-)

Pretpostavio sam da kad jednom importam certifikat da sam ga importao za cijelo računalo, a ne samo za jednog usera. Sve ove greške su se pojavljivale za usera koji (još) nije imao importan certifikat, a ovo što je radilo, naravno, testirao sam sa svojeg accounta.

Coordinator
Jan 25, 2013 at 12:07 PM
Edited Jan 25, 2013 at 12:12 PM

Importaj certifikat na Local Computer Account i onda će ti svi useri moći pristupiti istome (osim ako u group policy nemaš restrikcije, ali po defaultu je dozvoljeno). Ovako ćeš za svakog korisnika morati importirati isti certifikat. A kad dođe maintenance, onda budeš imao pakao.. I testiranje rada za svakog usera.. 

Jan 25, 2013 at 12:15 PM

Obavljeno. Hvala na dobrom savjetu, dkustec.