2010-12-03 3 views
7

私はC#にちょっと新しく、共通のコードをいくつかのプロジェクトで使用されているどこかに保存するための良い解決策を見つけようとしています。共通コードをC#でプロジェクト間で共有する方法を教えてください。

最初に私は.csファイルに保存して、コードを必要とするプロジェクトに追加しようとしましたが、このコードはファイルを意味するので、共通コードを変更すると、このコード。

私は代わりにクラスライブラリを作成し、コードを使用してプロジェクト内でDLLを参照しようとしました。まず最初に私はチュートリアルに従っていてもこれを動作させることはできません。DLLを参照しても何とか使うことはできませんが、これでもまだ私のアプリにバンドルされる余分なDLLが必要ですいくつかの共通コードとそれは私が欲しいものではありません。

答えて

9

それぞれのプロジェクトで参照する共通ライブラリを用意することをお勧めします。しかし、追加のDLLをバンドルする必要があるので、そうしたくないと言う場合、それは本当に大きな問題ですか?また、あなたはそれを働かせることができない、エラーの詳細などを投稿することができないと言及し、我々は助けることができるでしょう。

Visual Studioを使用していると仮定すると、共通ファイルを追加するのではなくプロジェクトにリンクすることもできます。これにより、共通ファイルは現在の場所に保持され、プロジェクトディレクトリに移動されません。

これを行うには、[既存のファイルを追加]ダイアログボックスに移動しますが、[追加]ボタンで下矢印をクリックし、代わりに[リンク]を選択します。

上記のように共通のライブラリを使用するのが最良のソリューションです。もしこれをバンドルすることが克服できない問題であれば、ilmergeを使用して調べることができます。これにより、すべてのdll/exesを1つのファイルにマージしてから展開することができます。既存のアイテムへのリンクを追加することができますVisual Studioで

+0

偉大な、私は小さな矢印がリンクとして追加することに気づいたことはありません、それはまさに私が必要なものでした、ありがとう! –

+0

なぜクラスライブラリを追加できないのか分かりません。私はクラスライブラリを作成してコンパイルしています。私はそれを使用してソリューションでそれを参照しますが、私はそれを使用するコードを追加しようとすると、まったく参照されていないかのようにそれにアクセスしようとすると、何か間違ってライブラリコードで何か間違って見ることができません。 –

+0

実際のコードは削除されましたが、これは次のようになります。using System; 名前空間テキストファイル { クラスtextfiletools { パブリック静的ブールのReadFile(文字列のファイル名、アウト列[] DEST) { } パブリック静的ブールWRITEFILE(文字列のファイル名、文字列[]データ) { } } } –

4

あなたが共通のファイルへのリンクを追加することができますwはDLLを出荷するために必要とせずに参照されている共通のコードを保つためにどのような方法があります:

  1. は、プロジェクトを右クリックが
  2. 選択=>「既存項目の...」「追加」
  3. を.csファイルは、あなたが
  4. の追加ボックスにドロップダウンをクリックして共有したいファイルを検索
  5. リンクとして追加を選択します。

希望します。

+0

Visual Studioを使用しているとします。 – Nick

1

あなたはほとんどそこにいました。既存のファイルを追加することもできますが、「追加」ボタンを展開してリンクすることもできます。

0

リンクされたファイルをプロジェクトに追加することができます。これはコピーを作成せず、単純にそのファイルを参照します。対象のプロジェクトを選択し、ソリューションエクスプローラで

  1. :既存のアイテムへのリンクを作成するには

    は、リンク先のページで"Adding an Existing Item as a Link"を参照してください。

  2. [プロジェクト]メニューの[既存のアイテムの追加]をクリックします。
  3. [既存のアイテムを追加]ダイアログボックスで、リンクするプロジェクトアイテムを見つけて選択します。
  4. [開く]ボタンのドロップダウンリストから、[リンクとして追加]を選択します。
0

:右クリックして[追加]を選択し、ソリューションエクスプローラーで

を - >既存項目... 参照ファイルには、代わりの追加]をクリックし、選択しましたリンクとして追加

しかし、私は共通のコードのための別のプロジェクトを使用することをお勧めします。

関連する問題