.NET TIPS

複数のプロジェクトでファイルを共有するには?

デジタルアドバンテージ 一色 政彦
2007/05/24

 複数のVisual Studioのプロジェクトで同じソース・コードを使いたい場合や同じバージョン情報を設定したい場合など、ソース・ファイルを共有したいことがある。共有すれば、1回の修正で、すべてのプロジェクトにそれを適用できるので、効率がよいからだ。

 このような目的には、Visual Studioの標準機能として搭載されているリンク・ファイル機能が役立つ。この機能は、Visual Studio .NET(2002/2003)およびVisual Studio 2005で利用できる。

 本稿では、このリンク・ファイル機能の使い方を紹介する。サンプルとして、Visual Studio 2005を使って、複数のプロジェクトでバージョン情報ファイル(AssemblyInfo.cs)の一部の情報(=.NETアセンブリに設定する会社名と著作権情報)を共有する例を示す。

Visual Studioのリンク・ファイル機能の設定方法

 本稿の例では、次の画面のように、ソリューション内に2つのプロジェクト(「ConsoleApplication1」と「ClassLibrary1」)があり、それぞれのプロジェクトの「Properties」フォルダ内に、「AssemblyInfo.cs」というバージョン情報ファイルが含まれているものとする。

本稿で扱う2つのプロジェクト(ConsoleApplication1とClassLibrary1)とそれぞれのバージョン情報ファイル(AssemblyInfo.cs)

●共有バージョン情報ファイルの作成

 まずは、この2つのプロジェクトの共有バージョン情報ファイルとして「SharedAssemblyInfo.cs」というファイルを1つ、メインのプロジェクト(本稿では「ConsoleApplication1」)内に用意する。

 このファイルを作成するには、ソリューション・エクスプローラでメイン・プロジェクトの項目を右クリックして、表示されるコンテキスト・メニューから[追加]−[新しい項目]を選択する。[新しい項目の追加 − <プロジェクト名>]ダイアログが表示されるので、「クラス」テンプレートを選択して、「SharedAssemblyInfo.cs」という名前でファイルを作成すればよい。

 そして次の画面のように、ソリューション・エクスプローラで、追加されたファイルを適切な場所(本稿では「Properties」フォルダの配下)に移動させる。

「Properties」フォルダの配下に移動させた共有バージョン情報ファイル(SharedAssemblyInfo.cs)

 共有バージョン情報ファイル(SharedAssemblyInfo.cs)を(ダブルクリックするなどして)Visual Studioのコード・エディタで開き、そのコード内容を次のように書き換える。

using System.Reflection;

[assembly: AssemblyCompany("Digital Advantage")]
[assembly: AssemblyCopyright("Copyright (C) Digital Advantage 2007")]
共有バージョン情報ファイル(SharedAssemblyInfo.cs)の内容

 このコードは、ビルド後に生成される.NETアセンブリに対して会社名(=AssemblyCompany属性)と著作権情報(=AssemblyCopyright属性)を設定するためのものだ。このコードを2つのプロジェクトで共有するので、それぞれのプロジェクトのバージョン情報ファイル(AssemblyInfo.cs)の方に記述されているAssemblyCompany属性(会社名)とAssemblyCopyright属性(著作権情報)のコード部分は削除しておこう(削除しないと、コンパイル時に「'AssemblyCopyright' の属性が重複しています。」といったエラーが発生する)。

●共有バージョン情報ファイルへのリンクの作成

 次に、先ほど作成した共有バージョン情報ファイル(SharedAssemblyInfo.cs)へのリンクを、そのファイルを共有したいプロジェクト(本稿では「ClassLibrary1」)の中に追加する。具体的には、[既存項目の追加 − <プロジェクト名>]ダイアログで、そのファイルを選択し、[追加]ボタンで[リンクとして追加](もしくは[リンク ファイル])を選択する。実際の手順は、次の画面を参考にしてほしい。

共有バージョン情報ファイル(SharedAssemblyInfo.cs)をリンクとして追加する手順
SharedAssemblyInfo.csファイルをリンクとして追加しているところ。
  [ソリューション エクスプローラ]でプロジェクト項目を右クリックしてコンテキスト・メニューを表示し、そこから[追加]−[既存の項目]を選択する。これにより[既存項目の追加 − <プロジェクト名>]ダイアログが表示される。
  リンクとして追加するファイル(本稿では「SharedAssemblyInfo.cs」)を選択する。
  [追加]ボタンの右端にある▼をクリックして[リンクとして追加](もしくは[リンク ファイル])を選択する。これにより、選択したファイルがリンク・ファイルとして追加される。

 追加すると、リンク・ファイル(=リンクとして追加した共有バージョン情報ファイル)は、ソリューション・エクスプローラ上では、のように左下にリンクを表す矢印が付く。

 リンク・ファイルも、次の画面のように、ソリューション・エクスプローラで適切な場所(本稿では「Properties」フォルダ)に移動させる。

「Properties」フォルダの配下に移動させた共有バージョン情報ファイル(SharedAssemblyInfo.cs)へのリンク

 以上で作業は完了だ。ビルドすればそれぞれのプロジェクトが生成するアセンブリに同じバージョン情報(会社名と著作権情報)が設定されるはずだ。

 さらにプロジェクトを増やした場合も、上記の手順により、そのプロジェクトにリンクを追加するだけで対応できる。

 なお、ソリューション・エクスプローラでリンク・ファイルをダブルクリックした場合には、本体のファイル(リンク元のファイル)が開かれる仕組みになっている。End of Article

カテゴリ:Visual Studio 2005 処理対象:IDE
カテゴリ:Visual Studio .NET 処理対象:IDE

この記事と関連性の高い別の.NET TIPS
バージョン情報ダイアログを作成するには?
Visual Studio 2005でバージョン情報を設定するには?
プロジェクト名やソリューション名を変更するには?
アセンブリ・バージョンとファイル・バージョンを一致させるには?
[ASP.NET]ページから生成されたソース・コードを見るには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間