2016-12-05 9 views
1

2つ(またはそれ以上)の.NETコアプロジェクト(コマンドラインプロジェクト)間で、どのようにC#ソースコードを共有することができますか?複数の.NETコアプロジェクト間でコードを共有

私の知る限り、xproj/project.jsonベースのプロジェクトの異なるディレクトリにあるソースファイルにリンクすることはできません。私は今、すべてのためのナゲットパッケージを作成することをお勧めしているように見えた。しかし、プライベートレポジトリをセットアップし、共通ソースユニットを共有できるだけのナゲットパッケージを作成することが本当に必要ですか?

VS2015には、共有ライブラリを構築するのに適した.NETコアライブラリのテンプレートが含まれています。このlibをナゲットパッケージのないプロジェクトにリンクすることは可能ですか?

答えて

3

.NET Core Libraryは、優れたソリューションです。

標準のC#ソリューションと同じように行います。プロジェクトを作成してこのプロジェクトを参照するか、DLLファイルへの参照を追加するだけです。

あなた自身の目的のために、ナゲットを使用する必要はありません。 Nugetパッケージはあなたのdllを外部に配布するのに便利です。


明確化:

は、私は1つのポイントを欠場 - 、私はVS2015を使用していますが、私は私の溶液中でクラスライブラリプロジェクトが含まれている、と私はいないDLLファイルにより、プロジェクトで参照していますし、これはASP.Netコアでうまく動作します。

私は別のプロジェクトを持っていますが、DLLファイルを直接参照するのは問題ありませんが、これはASP.NETアプリケーションの以前のバージョン(コアではありません)です - NETコアは以前のバージョンまだ?)。

あなたを混乱させて申し訳ありません、時にはそれがあまりにも多くの技術です;)


だからあなたは自分のプロジェクトとソリューションにClassLibraryプロジェクトを含め、プロジェクトとして、それを参照してくださいだろうか?

+0

どのバージョンのVSをお使いですか? .NET Frameworkプロジェクトでは、このリリースの.NET Frameworkアセンブリの参照のみがサポートされています。他のアセンブリを参照するには、それらをNuGetパッケージに組み込み、そのパッケージを参照する必要があります。 – NicolasR

+0

VS2015を使用していますが、ソリューションにクラスライブラリプロジェクトが含まれていますが、DLLファイルではなくプロジェクト別に参照しています。これは動作しますASP.Netコアで正常です。私はDLLファイルへの参照はほとんどありませんが、これは以前のバージョンのASP.NETアプリケーション(コアではありません)です。だから、ClassLibraryプロジェクトをあなたのソリューションに組み込み、それらのプロジェクトを参照することができますか? –

+0

いいえ、プロジェクト間の参照が機能しているようです。これは私の場合に受け入れられる解決策です。 – NicolasR

1

これは、ソースコントロールを使用して、新しいソリューションごとによく使用されるプロジェクトから分岐し、変更を加えると再びマスターブランチにマージすることで実現しました。

また、NuGetはアーカイブされたファイルの集まりに過ぎないので、このNuGetパッケージをローカルに置くことも、デフォルトで共通ライブラリを持つVisual Studioのテンプレートを作成することもできます。

あなたの好みや現在の環境状態(I.E:ソースコントロールやパッケージリポジトリの設定が可能)まで幅広い可能性があります。

+0

ソースコントロールシステムを使う考えは面白いです。残念ながら、私は1〜10個のソースファイルを共有したい場合や、プロジェクトをソース管理に入れることさえしたくない小さなテスト/サイドプロジェクトのためのソリューションを探しています!大規模なプロジェクトでは、地元のNugetソリューションを好むだろうが、小規模のプロジェクトでは、クロスプロジェクト参照のLukasz Makowejsソリューションが私にとって最も簡単だと思う。 – NicolasR

関連する問題