Avatar billede benneharli Juniormester
15. februar 2016 - 15:28 Der er 7 kommentarer og
1 løsning

Ændre assembly reference i runtime

For at lette distribution of min exe fil, har jeg indlæst en ekstra dll fil som resource i min exe fil, og skriver denne dll fil til temp når programmer starter.

Mit problem er, at den reference jeg laver til dll filen i VS jo skal ændres dynamisk så min exe fil nu ser på dll filen i temp mappen i stedet for den dll fil den forventer skal ligge i samme mappe som exe filen.

Håber spørgsmålet er nogenlunde tydeligt.

Anyone?
Avatar billede arne_v Ekspert
15. februar 2016 - 15:35 #1
Du kan loade assemblies dynamisk og instantiere type derfra.
Avatar billede benneharli Juniormester
15. februar 2016 - 15:51 #2
Lille eksempel?
Avatar billede arne_v Ekspert
15. februar 2016 - 17:15 #3
Dim o As IFoobar = CType([Assembly].LoadFrom("foobar.dll").CreateInstance("Foobar"), IFoobar)
Avatar billede benneharli Juniormester
16. februar 2016 - 00:59 #4
Jeg prøvede med følgende, og kan se assembly loader korrekt, men får stadig reference fejl...

Prøver at se om jeg kan få noget ud af dit.

Dim ass As Assembly = Assembly.LoadFrom(tmpPath & "\Independentsoft.IO.StructuredStorage.dll")
Avatar billede benneharli Juniormester
16. februar 2016 - 01:06 #5
Nu gør jeg fx  sådan her... hvordan kan jeg så tilgå metoder?

Dim cFile As Independentsoft.IO.StructuredStorage.CompoundFile = CType([Assembly].LoadFrom(tmpPath & "\Independentsoft.IO.StructuredStorage.dll").CreateInstance("CompoundFile"), Independentsoft.IO.StructuredStorage.CompoundFile)
Avatar billede benneharli Juniormester
16. februar 2016 - 01:43 #6
Ser ud til method 3 fra denne artikel løste det

https://support.microsoft.com/en-us/kb/837908
Avatar billede arne_v Ekspert
16. februar 2016 - 04:27 #7
re #5)

Helt normalt:

cFile.Metode()
Avatar billede benneharli Juniormester
16. februar 2016 - 08:29 #8
Det prøvede jeg også, men fik compile fejl.

Men at resolve i load efter at have skrevet dll filen til temp virkede :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester