[VB.NET] IO.Stream

Pagina: 1
Acties:

  • sorted.bits
  • Registratie: Januari 2000
  • Laatst online: 22-08 22:42
Ik ben bezig met een klein projectje, met deze applicatie lever ik een DLL file mee.

Nou is het mogelijk om met VB.NET een DLL file aan je project toe te voegen zodat deze gecompiled wordt IN de exe.

Nou wil ik deze DLL ook weer kunnen saven naar een directory, de DLL kan ik al vanuit de resources van de exe in een System.IO.Stream.

code:
1
2
3
4
5
6
7
8
9
10
    Public Sub ExtractFile(ByVal FileName As String)
        Dim thisExe As System.Reflection.Assembly
        Dim StreamLength As Double
        Dim ExtractedFile As System.IO.Stream

        thisExe = System.Reflection.Assembly.GetExecutingAssembly()
        ExtractedFile = thisExe.GetManifestResourceStream("Project.directory.dll")
        StreamLength = ExtractedFile.Length

    End Sub

ExtractedFile bevat nu als het goed is de inhoud van de dll file, de lengte van ExtractedFile is ook exact even groot als de grootte van de aangeleverde DLL, dus dat moet goed gaan.

Maar hoe de heck schrijf ik dit nu weer naar een file ? Zodat de dll weer fysiek aanwezig is op de HD?

  • Twilight Burn
  • Registratie: Juni 2000
  • Laatst online: 21-08 22:41
Als je van IPV een IO.Stream een IO.FileStream maakt, met de goede filename, saved ie um direct in die file als het goed is.
Echter, als je een exe mee wilt leveren, is het dan niet makkelijker deze gewoon te includen in de installer die je maakt? Dat is nl. ook een standaard optie
[Edit 2:]
Bij nader inzien gaat dit niet werken, omdat je de stream van de resource pakt.
De simpelste manier die ik dan kan bedenken is door een filestream erbij te nemen, en dan een loop maken die een byte uit je resource-stream leest en eentje in de filestream schrijft.

[ Voor 74% gewijzigd door Twilight Burn op 26-04-2003 22:47 ]