2016-08-22 3 views
1

Ich habe ein kleines Projekt mit C# entwickelt und alles funktioniert perfekt. Das einzige Problem ist, dass diese App regelmäßig per E-Mail gesendet wird, deshalb versuche ich alle Dateien als eine ausführbare Datei zu sammeln. Der Benutzer muss nur eine ausführbare Datei öffnen und sehen, die die benötigten Dateien lädt und die Anwendung startet.Packen von Dateien in eine ausführbare Datei (C#)

Die App verwendet keine externen Bibliotheken. Die einzige .dll Datei ist für die IWshRuntimeLibrary.

Die Dateien, die zusammengebaut werden müssen:

Files

Bitte beachte, dass ich weiß, dass einige Dateien (svhost etc.) entfernt werden kann. Das wird jedoch nicht helfen, da ich immer noch mehr als eine Datei habe. Ich habe auch einige kostenlose Assembler online versucht, aber keiner von ihnen hat funktioniert.

+2

Mögliches Duplikat von [Zusammenfassen von Baugruppen] (http://stackoverflow.com/questions/3562709/merging-assemblies) –

+1

Sie benötigen nur eine kleine Auswahl dieser Dateien. Alle '.pdb' und' .vshost' Dateien sollten nicht verteilt werden –

+0

Haben Sie darüber nachgedacht, diese DLL als Ressource in Ihre exe einzubetten? Bitte beachten Sie: http://www.codeproject.com/Articles/528178/Load-DLL-Von-Embedded-Ressource – pmatyszok

Antwort

0

Wählen Sie im Projektmappen-Explorer die Referenz Interop.IWshRunctime... aus, und ändern Sie im Eigenschaftenfenster den Wert Embed Interop Types in True.

Dies erzeugt keine separate DLL für Interop-Typen.

PS: Dies ist keine allgemeine Lösung, sondern funktioniert nur mit dem Interop-Typ.

0

Ist dies nicht über die Sicherheit Grund ist, dass ich die Verzeichnisstruktur wie folgt erstellen würde:

- root 
└ Startup.bat 
└ lib 
    └ DiagnosticsSwitch.exe 
    └ DiagnosticsSwitch.exe.config 
    └ DiagnosticsSwitch.exe.manifest 
    └ Interop.IWshRuntimeLibrary.dll 

Und in der Startup.bat

Verwandte Themen