2016-10-05 32 views
0

私は展開可能なネイティブの.NETコア実行可能ファイルをビルドしたいが、プロジェクトを公開すると、コンパイラはすべての依存関係を同じディレクトリにエクスポートし、実行ファイルはそれらを実行する必要がある.NET Coreランタイムがインストールされていないシステム。 DLLをプロジェクトDLLまたは実行ファイルとともにコンパイル/パッケージ化する方法はありますか?ありがとう。コンパイル済みのアセンブリに依存関係をマージする.netコアパッケージの依存関係

+0

なぜそれはただ一つのファイルでなければならないのですか? – svick

+0

ポータブルバイナリリリースの場合。 –

+0

私はそれが暴言だと思う。すべてのプラットフォームに異なるバイナリファイル形式があるので、移植可能なバイナリリリースは実際にはありません。 – svick

答えて

1

、FodyためCosturaをチェックアウト:

https://github.com/Fody/Fody

https://github.com/Fody/Costura

私は前にそれを使用しました、それがうまく動作します。 FodyWeavers.xmlの例:のCostura-Fodyリンクを参照してください)というファイルにマージする特定の依存関係を定義できます。

たとえば、(Costura README.mdから取得した)、FodyWeavers.xmlファイルで次のようにターゲットアセンブリにマージできる 'Foo'と 'Bar'という2つの依存関係を持つことができます。それ以外

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

、ILMergeは行くための罰金の方法です:https://www.nuget.org/packages/ilmerge

EDIT:自己完結型のアプリケーションに配備する必要の.NETコアの依存関係を記述したリンクが見つかりました:http://druss.co/2016/08/deploy-and-run-net-core-application-without-installed-runtime-self-contained-applications/

+0

私は.NET Coreフレームワーク内でより多くのソリューションを探していましたが、このソリューションも同様に機能します。私は既に自己完結型の実行可能ファイルを構築しようとしましたが、実行時ライブラリをバイナリに含めてDLLのエクスポート場所にエクスポートします。つまり、依存関係のディレクトリの外側で実行可能ファイルを実行しようとすると、「エラー:アセンブリが見つかりません」というメッセージが返されます。これが意図的なものなのか、.NET Coreが実際に依存関係をビルドにバインドすることになっているのか分かりません。 お返事ありがとうございます。 –