2016-10-05 1 views
0

Ich möchte eine native .NET Core-Programmdatei erstellen, die ich bereitstellen kann, aber wenn ich das Projekt veröffentliche, exportiert der Compiler alle Abhängigkeiten in das gleiche Verzeichnis und die ausführbare Datei benötigt sie auf einem System, auf dem .NET Core Runtime nicht installiert ist. Gibt es eine Möglichkeit, die DLLs mit der Projekt-DLL oder der ausführbaren Datei zu kompilieren/zu packen? Vielen Dank..net Kernpaket Abhängigkeiten

+0

Warum Muss es nur eine Datei sein? – svick

+0

Für eine portable Binärversion. –

+0

Ich denke, das ist ein Oxymoron. Sie können nicht wirklich eine portable Binärversion haben, weil jede Plattform ein anderes Binärdateiformat hat. – svick

Antwort

1

Für Abhängigkeiten in die kompilierte Assembly Besuche Costura für Fody Fusion:

https://github.com/Fody/Fody

https://github.com/Fody/Costura

Ich habe es verwendet, vor, und es funktioniert gut. Sie können bestimmte Abhängigkeiten definieren, die in einer Datei mit dem Namen FodyWeavers.xml (siehe die Costura-Fody-Verknüpfung für Beispiele) zusammengeführt werden.

So zum Beispiel (genommen von der Costura README.md) können Sie zwei Abhängigkeiten ‚Foo‘ haben und ‚Bar‘, die in Ihre Zielbaugruppe zusammengefügt werden können, wie in der FodyWeavers.xml Datei folgt.

<Costura> 
    <IncludeAssemblies> 
     Foo 
     Bar 
    </IncludeAssemblies> 
</Costura> 

Other than that, ist ILMerge ein feiner Weg zu gehen: https://www.nuget.org/packages/ilmerge

EDIT: einen Link gefunden benötigt .NET Kern Abhängigkeiten in einer in sich geschlossenen Anwendung beschreibt die Bereitstellung von: http://druss.co/2016/08/deploy-and-run-net-core-application-without-installed-runtime-self-contained-applications/

+0

Ich suchte nach einer mehr internen Lösung innerhalb des .NET Core-Frameworks, aber diese Lösung wird genauso gut funktionieren. Ich habe bereits versucht, eine eigenständige ausführbare Datei zu erstellen, aber das alles schließt die Laufzeitbibliotheken in die Binärdatei ein und exportiert die DLLs in den Exportspeicherort. Das bedeutet, wenn Sie versuchen, die ausführbare Datei außerhalb eines Verzeichnisses ihrer Abhängigkeiten auszuführen, wird eine Fehlermeldung "Fehler: Fehlende Assembly" zurückgegeben. Ich weiß nicht, ob das beabsichtigt ist oder ob .NET Core eigentlich die Abhängigkeiten in den Build einbinden soll. Danke für die Antwort. –

Verwandte Themen