サーバーへのファイルの追加

 

発行: 2016年4月

ソリューション エクスプローラーを使用していて、プロジェクトがバージョン管理されている場合、バージョン管理システムへのファイルの追加はしばしば自動的に実行されます。 ただし、場合によっては、プロジェクトをバージョン管理システムに追加する特別な手順が必要になります。

ヒント

バージョン管理システムにファイルを追加する前に、まず開発用コンピューターのワークスペースをセットアップする必要があります。

実行する操作

  • バージョン管理された新しいコード プロジェクトとソリューションを作成する

  • 既存のソリューションとコード プロジェクトをバージョン管理の対象にする

  • バージョン管理に 1 つまたは複数のファイルを追加する

  • コードによってビルドされないサードパーティのバイナリを活用する

  • どのファイルがバージョン管理によって無視されるかをカスタマイズする

  • コマンド プロンプトから作業する

バージョン管理された新しいコード プロジェクトとソリューションを作成する

チーム プロジェクトの作成とバージョン管理システムへの追加とを同時に実行して、作成する最初のコード行からバージョン管理の恩恵をすべて即座に享受することができます。

[新しいプロジェクト] ダイアログ ボックス

  1. Visual Studio でまだチーム プロジェクトに接続していない場合は、チーム プロジェクトに接続します。

  2. [ファイル][新規作成][プロジェクト] (キーボード: Ctrl + Shift + N) を選択します。

    [新しいプロジェクト] ダイアログ ボックスが表示されます。

  3. 作成するコード プロジェクトの種類を選択します。

  4. [名前] ボックスで、コード プロジェクトの名前を指定します。

  5. [ソリューション] ボックスが表示された場合、[新しいソリューションを作成する] が選択されていることを確認します。

  6. [場所] ボックスで、開発用コンピューターのセットアップ時に作成したワークスペースの適切なローカル作業フォルダーのパス (c: \code\SiteApp\Main\ など) を指定します。

    [ソリューションのディレクトリを作成] チェック ボックスと [ソース管理に追加] チェック ボックスがオンになっていることを確認します。

  7. [OK] をクリックしてコード プロジェクトを作成します。作成したコード プロジェクトはソリューション エクスプローラーで表示できます (キーボード: Ctrl + Alt + L)。

    ソリューション エクスプローラーの新しいコード プロジェクト

  8. ソリューション エクスプローラーで、作成または変更したソリューションのコンテキスト メニューを開き [チェックイン] をクリックして、保留中の変更を送信します。

既存のソリューションとコード プロジェクトをバージョン管理の対象にする

バージョン管理に既存のソリューションを追加するには、すべてのソリューション ファイルをワークスペースに移動して、それを追加します。

注意

[ソリューションをソース管理に追加] ダイアログ ボックスを使用してバージョン管理にソリューションをアップロードすることは避けてください。代わりに、以下の手順を使用します。

  1. Visual Studio でまだチーム プロジェクトに接続していない場合は、チーム プロジェクトに接続します。

  2. [表示][その他のウィンドウ][ソース管理エクスプローラー] の順にクリックします。

  3. ソース管理エクスプローラーで、ソリューションの論理上の親フォルダーに移動します ($/SiteApp/Main など。ここで SiteApp はチーム プロジェクトの名前です)。 この親フォルダーが適している理由を参照してください。

  4. [ローカル パス] の横にあるリンクをクリックし、エクスプローラーで親フォルダーを開きます。

    リンク テキストが「マップされていません」である場合の対処方法を参照してください。

  5. ソリューションを含むフォルダーを親フォルダーに移動します。

  6. Visual Studio で、[ファイル][開く][プロジェクト/ソリューション] の順にクリックし、[プロジェクトを開く] ダイアログ ボックスを使用してソリューションを開きます。

  7. ソリューション エクスプローラー (キーボード: Ctrl + Alt + L) で、ソリューションを選択し、そのコンテキスト メニューを開き、[ソリューションをソース管理に追加] をクリックします。

  8. ソリューション エクスプローラーで、ソリューションを選択し、そのコンテキスト メニューを開き、[チェックイン] をクリックします。

  9. チーム エクスプローラーに [保留中の変更] ページが表示されます。

  10. [除外される変更] セクションに [検出された変更] が表示されていますか。

    • いいえ: 次の手順に進みます。

    • はい: [検出された変更] リンクをクリックします。 [候補の変更の昇格] ダイアログ ボックスが表示されます。 このダイアログ ボックスに表示されているファイルは、ソリューションのどのコード プロジェクトによっても参照されていません。 チームでこれらのファイルが必要な場合は、選択されていることを確認して [昇格] をクリックすると、[保留中の変更] ページの [含まれる変更] セクションに移動されます。 詳細については、「チームのコードベースへの作業のチェックイン」を参照してください。

  11. 準備が整ったら、保留中の変更を送信します。

バージョン管理に 1 つまたは複数のファイルを追加する

ソリューション エクスプローラーを使用してコード プロジェクトにファイルを追加すると、バージョン管理にファイルが自動的に追加されます。 ただし、コード プロジェクトによって参照されていないファイルも追加できます。

ヒント

自動処理を作成する場合、またはコマンド プロンプトを使用する場合は、以下の手順の代わりに Add コマンド を使用できます。

バージョン管理に 1 つまたは複数のファイルを自動的に追加する

ローカル ワークスペースを使用している場合、[保留中の変更] ページで新しいファイルが自動的に検出されます。

  1. Visual Studio でまだチーム プロジェクトに接続していない場合は、チーム プロジェクトに接続します。

  2. [表示][その他のウィンドウ][ソース管理エクスプローラー] の順にクリックします。

  3. ソース管理エクスプローラーで、ファイルまたはフォルダーを追加するフォルダーに移動します。

  4. [ローカル パス] の横にあるリンクをクリックし、エクスプローラーで対象フォルダーを開きます。

    このフォルダーにファイルとフォルダーを移動します。

    リンク テキストが「マップされていません」である場合の対処方法を参照してください。

  5. Visual Studio のチーム エクスプローラーで、[保留中の変更] をクリックします。

  6. [保留中の変更] ページの [除外される変更] セクションで、[検出された変更] をクリックします。

  7. [候補の変更の昇格] ダイアログ ボックスで、チェックインするファイルのみが選択されていることを確認し、[昇格] を選択します。

  8. 保留中の変更を送信します。

ファイルをバージョン管理に手動で追加する

ファイルをバージョン管理に手動で追加することもできます。

  1. [表示][その他のウィンドウ][ソース管理エクスプローラー] の順にクリックします。

  2. ソース管理エクスプローラーで、ファイルを配置するフォルダーに移動します。

    重要

    先に進む前に、このフォルダーがチェックインされていることを確認します。フォルダーをいま作成する場合は、フォルダーのコンテキスト メニューを開き、[チェックイン] をクリックして、新しいフォルダーをチェックインしてから次に進みます。

  3. エクスプローラーからソース管理エクスプローラーのフォルダーにフォルダーまたはファイルをドラッグします。

  4. [ソース管理に追加] ダイアログ ボックスが表示されたら、追加するすべてのファイルが選択されていることを確認して、[項目の追加] をクリックします。

  5. [完了] をクリックします。

  6. チーム エクスプローラーで [保留中の変更] ページが表示されたら、追加するバイナリが [含まれる変更] セクションに表示されていることを確認します。 [チェックイン] を選択します。

コードによってビルドされないサードパーティのバイナリを活用する

コードを管理するソリューションでビルドされないバイナリに依存するコードを開発しているチームは少なくありません。 通常、このようなバイナリは、チームがサードパーティからライセンスしたライブラリの一部です。

このようなバイナリは同じ会社の別のチームから提供されることもあります。 たとえば、チーム A はチーム B が作成したバイナリに依存しており、各チームはなんらかの理由により別のチーム プロジェクト コレクションを使って作業する必要があります。 その結果、チーム B がチーム A にバイナリを渡して、それをチーム A がバージョン管理にチェックインします。

ヒント

開発用コンピューターとビルド サーバーがインターネットにアクセスできる場合は、NuGet を利用すると、チームで依存関係を管理しバイナリを最新状態に維持しやすくなります。NuGet の利用を決めた場合でもまだ、コードの過去のバージョンを再現してビルドできるように、バージョン管理にバイナリを追加する必要があります。

サードパーティ製バイナリの格納に使用するフォルダーとワークスペース構造は、ソリューションがサードパーティ製バイナリにどのように依存しているかによって異なります。

フォルダーまたは分岐構造内にバイナリを追加する

ソリューション フォルダーと同じ親フォルダーにサードパーティ製バイナリを配置すると、すべてのソリューションのコード プロジェクトがすべて同じ相対パスでライブラリを参照できるようになります。

たとえば、チームがこのフォルダー構造を使用するとします。

メインの親フォルダー内のライブラリ フォルダー

すると、すべてのコード プロジェクトで、../../Lib という相対パスによってライブラリ フォルダーを参照できます。

後で自分のプロジェクトで、異なるバージョンのバイナリを必要とする作業を分離する必要が生じた場合は、ソリューション フォルダーと共にライブラリ フォルダーを分岐できます。

たとえば、バージョン 1 のアプリはライブラリのバージョン 1 を利用します。 データ アクセス チームの一部の開発者が次のバージョンの作業をするときは、バージョン 2 を利用します。 しかし他のチームはまだアップグレードする準備ができていません。 分岐を使用すると、この種の状況を管理することができます。

分岐構造内のライブラリ フォルダー

ワークスペースを使用してバイナリをマップする

サードパーティ製ライブラリのもっと複雑な依存関係を管理しなくてはいけない会社もあります。 たとえば、複数のチーム プロジェクトで、ソリューションのライブラリ セットは共通なのに、その依存関係が異なる場合です。 このような場合は、サードパーティ製ライブラリを専用のチーム プロジェクトに格納します。 さまざまなチーム プロジェクトの開発者は、必要とするライブラリを含むフォルダーをマップします。

たとえば、FabrikamFiber は、次のようにチーム プロジェクト、分岐、フォルダー構造を設定しています。

専用のチーム プロジェクトに格納されたライブラリ

ライザは、開発用コンピューターで 2 つの異なるプロジェクト用に 2 つのワークスペースをセットアップし、それぞれに必要なライブラリをマップします。

ライブラリのワークスペース マップ

どのファイルがバージョン管理によって無視されるかをカスタマイズする

既定では、特定の種類のファイル (.dll ファイルなど) はバージョン管理によって無視されます。 結果は次のようになります。

  • ローカル ワークスペースでマップされたフォルダーに無視されたファイルを追加した場合、チーム エクスプローラーの [保留中の変更] ページには表示されません。

  • [ソース管理に追加] ダイアログ ボックスを使用して、無視されたファイルを追加しようとすると (たとえば、ソース管理エクスプローラーにドラッグ)、[除外された項目] タブに自動的に表示されます。

規則を適用するフォルダーに「.tfignore」というテキスト ファイルを配置することによって、どの種類のファイルが無視されるかを構成することができます。 .tfignore ファイルの影響は再帰的です。 ただし、サブフォルダーに .tfignore ファイルを作成して、親フォルダー内の .tfignore ファイルの影響をオーバーライドすることができます。

.tfignore ファイルの規則

.tfignore ファイルには、次の規則が適用されます。

  • # はコメント行を開始します。

  • * および ? ワイルドカードがサポートされています。

  • filespec は \ 文字で始まっていない限り、再帰的ではありません。

  • ! は、filespec を無効にします (パターンに一致するファイルは無視されません)。

.tfignore ファイルの例

######################################
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# Ignore .txt files in this folder 
\*.txt
# Ignore .xml files in this folder and all its sub-folders
*.xml
# Ignore all files in the Temp sub-folder
\Temp
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll

.tfignore ファイルを作成して使用する

前の規則を使用して手動で .tfignore のテキスト ファイルを作成できますが、[保留中の変更] ページで変更が検出されたときに、自動的にテキスト ファイルを生成することもできます。

.tfignore ファイルを自動的に生成するには

  1. [保留中の変更] ページの [除外される変更] セクションで、[検出された変更] リンクをクリックします。

    [候補の変更の昇格] ダイアログ ボックスが表示されます。

  2. ファイルを選択し、コンテキスト メニューを開き、[このローカル項目を無視][拡張子によって無視][ファイル名によって無視]、または [フォルダーで無視] を順に選択します。

  3. [OK] または [キャンセル] をクリックして、[候補の変更の昇格] ダイアログ ボックスを閉じます。

  4. .tfignore ファイルは、[保留中の変更] ページの [含まれる変更] セクションに表示されます。 このファイルを開き、ニーズに合わせて変更できます。

.tfignore ファイルは含まれる保留中の変更として自動的に追加されるため、作成した規則はファイルを取得する各チーム メンバーに適用されます。

コマンド プロンプトから作業する

  • Add コマンド: 開発用コンピューターのワークスペースからサーバーにファイルをアップロードします。

参照

ローカル ワークスペースとサーバー ワークスペースのどちらを使用するかを決定する