2008-09-12 12 views
3

Der einfachste Weg, um an meine Frage zu denken, ist, an einen einzigen, einfachen Unix-Befehl zu denken (obwohl dies für Windows ist), und ich brauche progmatischen Zugriff, um ihn auszuführen.Ist es möglich, eine portable ausführbare Datei in eine .net-DLL einzubetten und zu verwenden?

Ich habe eine einzige Befehlszeilen-basierte ausführbare Datei, die einige Arbeitseinheiten ausführt. Ich möchte diese ausführbare Datei mit der .net-Prozessbibliothek aufrufen, wie ich es mit jeder anderen ausführbaren Datei tun kann.

Allerdings dämmerte mir, dass es Potenzial für die DLL, nutzlos zu werden oder mit unbeabsichtigten Updates der ausführbaren Datei oder einer nicht existenten ausführbaren Datei zu brechen.

Ist es möglich, die ausführbare Datei aus dem Process-Objekt im .NET-Framework auszuführen, als würde ich eine externe ausführbare Datei?

Antwort

1

Nein, Sie können es nicht direkt ausführen. Sie könnten es wahrscheinlich in ein temporäres Verzeichnis entpacken und von dort aus ausführen.

0

Ist das, wo PInvoke kann helfen?

+0

Wenn mich nicht alles täuscht, Pinvoke ist in anderen dlls laufenden Code, ich suche ein einzubetten exe in derselben DLL (oder sogar exe) wie der gerade laufende Code. – casademora

0

Abhängig von der Funktionalität des Befehlszeilenprogramms, das Sie ausführen möchten, ist es möglicherweise möglich, die Funktionalität in PowerShell zu duplizieren, wobei Sie die PowerShell-Laufzeitumgebung in Ihre .NET-Anwendung einbetten können.

Verwandte Themen