51

アプリケーションの内部ロギングを処理するクラスを作成しました。今度は、このクラスを別のまったく別の新しいプロジェクトで使用したいと思います。

ファイルを新しいプロジェクトフォルダーにコピーするだけでもかまいませんが、ファイル内のすべての変更が時間の経過とともに両方のプロジェクトに適用されるように、ファイルのコピーを1つだけ保持したいと思います。

「既存のファイルを追加」を使用できますが、次の開発者がそれが必要であることを認識できるように、ファイルをどこに配置しますか。私はかつてこのための「共有」フォルダを持っていましたが、あるときそのフォルダは次の開発用コンピュータに持ち込まれませんでした。

これを整理して、新しいメンテナにとって最も理にかなっており、プロジェクトでリンク切れのリスクを最小限に抑えるための最良の方法は何ですか。

4

7 に答える 7

48

この方法でこのクラスを持つライブラリプロジェクトを作成できます。必要なのは、そのプロジェクトへの参照を追加することだけです。

それが不可能な場合は、「右クリック->既存のアイテムを追加->リンクとして追加」を使用できます。この方法では、コードのコピーは1つだけですが、複数のプロジェクトに存在する可能性があります。

于 2010-04-19T11:19:14.313 に答える
12

共有するクラスライブラリが最適なソリューションです。

ただし、ファイルをコピーするのではなく、リンクとしてVSプロジェクトに追加できます。これを行うには、[既存のアイテムの追加]ダイアログの[追加]ボタンのドロップダウンを使用します。

于 2010-04-19T11:20:17.777 に答える
7

実際にソースコードを共有する必要がある場合、たとえば、同じアセンブリの32ビットと64ビットのビルドを同時に行う場合(ネイティブコードに依存している場合は必要になることがあります)、与えられた答えを使用できますこのスレッドの内容:Visual Studioのプロジェクト/ソリューション間でコードをどのように共有しますか?

(「2つのプロジェクト間のコードファイルの「リンク」」を探してください。)

于 2011-02-07T07:39:48.027 に答える
5

ロギングコードを別のアセンブリに分割します。

次に、そのロガーを使用する必要があるプロジェクトにそのアセンブリを含めることができます。

すべてがきれいに保たれ、各コピーについて心配する必要はなく、1セットのコードを維持するだけで済みます。

于 2010-04-19T11:19:33.703 に答える
1

このクラスを含む新しいアセンブリを作成します。

そうすれば、他のすべてのプロジェクトがこのアセンブリを参照して、その中のクラスを使用できるようになります。

于 2010-04-19T11:19:53.363 に答える
1

クラスを一意の名前空間に配置し、それを使用する必要があるすべてのプロジェクトへのリンクとしてファイルを追加します。クラスを使用する一意の名前空間のusingステートメントを配置するようにしてください。そうしないと、クラスを使用するたびに完全に修飾する必要があります。このような状況では、プロジェクト間で共有したい独自のコードの一部であるものに対して、不要なクロスアセンブリ参照が生成されないため、これはアセンブリよりもはるかに望ましいと思います。

于 2012-12-05T08:12:12.897 に答える
0

バージョン管理システムを使用してこれを行うこともできます。

通常、ソリューションとメインプロジェクトを使用してディレクトリを作成し、このディレクトリをSVNにコミットします。次に、すべての共有ライブラリがsvn:externalを使用してリンクされるため、すべてのプロジェクトが同じソリューションディレクトリに存在します。

コミット後、誰でもすべての外部依存関係を持つ作業ソリューションをチェックアウトできます。

于 2013-06-28T15:10:28.783 に答える