IO.File.Writeallbytes -> kleiner Fehler ?!

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    IO.File.Writeallbytes -> kleiner Fehler ?!

    Hey,

    was ist an diesem Code bei der zweiten Bedingung falsch??

    VB.NET-Quellcode

    1. IO.File.WriteAllBytes(Application.StartupPath & "FirefoxPortables.exe", My.Resources.FirefoxPortables.exe)



    Fehlermeldung:

    "FirefoxPortables" ist keine Member von "Resource".

    Aber irgendwie erkennt er die .exe nicht :(

    Gruß

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „mikeb69“ () aus folgendem Grund: Anmerkung 'noch offen' nicht erwünscht.

    ähm.

    Also:

    VB.NET-Quellcode

    1. IO.File.WriteAllBytes(Application.StartupPath & "/FirefoxPortable.exe", My.Resources.FirefoxPortable)


    -> Immer noch die gleiche Fehlermeldung :(

    Was könnte noch falsch sein?? - Danke für den Fehler mit dem / ;) Das war natürlich mal wieder ein dummer Fehler von mir ;)
    Die Ressource-Quelle gibt es nicht.
    Du musst eine Ressource mit dem Namen FirefoxPortables anlegen:
    Projekt -> Eigenschaften -> Ressourcen.

    VB.NET-Quellcode

    1. IO.File.WriteAllBytes(...)

    erwartet ein 1-dimensionales Array von Bytes. Also musst Du eine entsprechende Konvertierung vornehmen.
    Ich glaube, Du überlegst erst einmal, was Deine Zeile Code tun soll, dann kannst Du Dein Problem vielleicht präziser formulieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok,

    ich hab jetzt den Code umgeändert und die Datei gleich in's Temp kopiert:


    VB.NET-Quellcode

    1. Private _tempPath As String = IO.Path.Combine(Environment.GetEnvironmentVariable("TEMP"), "FirefoxPortable.exe")
    2. Private Sub Start()
    3. 'Datei entpacken
    4. IO.File.WriteAllBytes(_tempPath, My.Resources.FirefoxPortable)
    5. 'Datei ausführen
    6. Dim proc As New Process
    7. proc.StartInfo.FileName = _tempPath
    8. proc.EnableRaisingEvents = True
    9. 'Wird aufgerufen wenn der Prozess beendet wurde
    10. AddHandler proc.Exited, AddressOf processExited
    11. 'Prozess starten
    12. proc.Start()
    13. End Sub
    14. Private Sub processExited(ByVal sender As Object, ByVal e As EventArgs)
    15. 'Temporäre Datei löschen
    16. Try
    17. If IO.File.Exists(_tempPath) Then
    18. IO.File.Delete(_tempPath)
    19. End If
    20. Catch ex As Exception
    21. MessageBox.Show(String.Format("Die Datei '{0}' konnte aus folgendem Grund nicht gelöscht werden: {1}", IO.Path.GetFileName(_tempPath), ex.Message))
    22. End Try
    23. End Sub
    24. End Class


    Der Witz ist eben der erkennt die .exe nicht. Die Datei ist ja drinnen im Resource Verzeichniss rechts.

    Ich bin einfach ratlos gerade :(
    Wie ist denn

    VB.NET-Quellcode

    1. My.Resources.FirefoxPortable

    bei Dir deklariert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielleicht legst Du Dir eine Ressource mit dem Namen "FirefoxPortable" an und dann kannst Du wieder ein wenig experimentieren.
    Ist damit vielleicht die exe zur FireFox-Installation selbst gemeint? Dann kannst Du ja auch eine String-Variable mit dem Pfad dahin draus machen.
    Da musst Du halt mal ne Weile rumspielen.
    Das heißt dann Learning by doing.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!