Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
Visual Studio ソリューション エクスプローラー を使用し、プロジェクトがバージョン管理下にある場合、バージョン コントロールへのファイルの追加は多くの場合、自動で行われます。 ただし、場合によっては、ファイルとプロジェクトをバージョン管理に追加するための追加の手順を実行する必要があります。
[前提条件]
| カテゴリ | Requirements |
|---|---|
| アクセス許可 | プロジェクトの 共同作成者 グループのメンバー。 |
詳細については、「 既定の TFVC アクセス許可」を参照してください。
Important
これらの手順は、 ローカル ワークスペースを使用する場合にのみ適用されます。 ローカル ワークスペースを使用すると、保留中の変更として新しいファイルが自動的に検出されます。 逆に、サーバー ワークスペースに保存したファイルは、保留中の変更として表示されずに追加およびチェックインされます。
バージョン管理下に新しいコード プロジェクトとソリューションを作成する
新しい Visual Studio プロジェクトを作成し、それをバージョン コントロールに追加して、自分とチームが、記述したコードの最初の行からバージョン 管理のすべての利点をすぐに利用できるようにすることができます。
Visual Studio で、 Azure DevOps プロジェクトに接続します。
[ファイル>新しいプロジェクト] を選択するか、Ctrl キーを押しながら Shift キーを押しながら N キーを押します。
[ 新しいプロジェクトの作成 ] 画面で、作成するコード プロジェクトの種類を選択し、[ 次へ] を選択します。
[ 新しいプロジェクトの構成 ] 画面の [ プロジェクト名] に、プロジェクトの名前を入力します。
[場所] で、開発マシンのセットアップ時に作成したワークスペース内のローカル作業フォルダー (c:\code\SiteApp\Main\ など) へのパスを指定します。
残りの設定はそのままにして、[ 次へ] を選択します。
[ 追加情報 ] 画面で、必要に応じて設定を変更し、[ 作成] を選択します。
プロジェクトが作成されたら、 ソリューション エクスプローラーで表示します。これを開くには、Ctrl + Alt + L キーを押します。
ソリューション エクスプローラーでソリューション名を右クリックし、コンテキスト メニューから [ソース管理にソリューションを追加] を選択します。
チーム エクスプローラー ウィンドウに切り替え、[チェックイン] を選択してプロジェクトをソース管理にチェックインします。
既存のソリューションとコード プロジェクトをバージョン管理下に配置する
既存のソリューションをバージョン 管理に追加するには、すべてのソリューション ファイルをワークスペースに移動し、Visual Studio で追加します。
Visual Studio で、 Azure DevOps プロジェクトに接続します。
[>>を選択します。
ソース管理エクスプローラーで、ソリューションの論理親フォルダー ($/SiteApp/Main など) に移動します。SiteApp はプロジェクトの名前です。 ローカル フォルダーの名前付けの詳細については、「フォルダー 名の最適化」を参照してください。
ウィンドウの上部にある [ ローカル パス ] の横にあるリンクを選択して、Windows エクスプローラーで親フォルダーを開きます。 リンクに [マップされていない] と表示されている場合は、「 ワークスペースの作成と操作 」を参照して、ワークスペースのマッピングに関する情報を参照してください。
エクスプローラーで、ソリューションを含むフォルダーを親フォルダーに移動します。
Visual Studio で[ ファイル]>[プロジェクトを開く]を選択し、ソリューションに移動して開きます。
ソリューション エクスプローラーでソリューション名を右クリックし、コンテキスト メニューから [ソース管理にソリューションを追加] を選択します。
ソリューション名をもう一度右クリックし、コンテキスト メニューから [チェックイン ] を選択します。
チーム エクスプローラーの [保留中の変更] ページで、[除外された変更] セクションに [検出済み] リンクが表示されている場合は、リンクを選択します。
[ 候補の変更の昇格 ] ダイアログ ボックスには、ソリューション内のコード プロジェクトによって参照されていないファイルが一覧表示されます。 チェックインするこれらのファイルのいずれかを選択し、チェックインしないファイルの選択を解除してから、[ 昇格 ] を選択して、選択したファイルを [含まれる変更] に移動します。 表示されているファイルをチェックインしない場合は、[ キャンセル] を選択してダイアログ ボックスを閉じます。
[ チェックイン] を選択します。
詳細については、「保留中の 変更を送信する」を参照してください。
バージョン 管理に 1 つ以上のファイルを追加する
Visual Studio ソリューション エクスプローラーでコード プロジェクトにファイルを追加すると、ファイルがバージョン コントロールに自動的に追加されます。 コード プロジェクトで参照されていないファイルを追加することもできます。
バージョン 管理に 1 つ以上のファイルを自動的に追加する
Visual Studio で、 Azure DevOps プロジェクトに接続します。
[>>を選択します。
ソース管理エクスプローラーで、ファイルまたはフォルダーを追加するフォルダーに移動します。
[ソース管理エクスプローラー] ウィンドウの上部にある [ローカル パス] の横にあるリンクを選択して、Windows エクスプローラーでターゲット フォルダーを開きます。 リンクに [マップされていません] と表示されている場合は、「 ワークスペースを作成して操作し、ワークスペース をマップする」を参照してください。
エクスプローラーで、ファイルまたはフォルダーをターゲット フォルダーに移動します。
Visual Studio チーム エクスプローラーの [保留中の変更] ページで、[除外された変更] の下に [検出された] リンクが表示されている場合は、リンクを選択します。
[ 候補の変更の昇格 ] ダイアログ ボックスで、チェックインするファイルのみを選択し、[ 昇格] を選択します。 表示されているファイルをチェックインしない場合は、[ キャンセル] を 選択します。
[ チェックイン] を選択します。
詳細については、「保留中の 変更を送信する」を参照してください。
バージョン 管理にファイルを手動で追加する
バージョン 管理にファイルを手動で追加することもできます。
Visual Studio で、[ 表示>その他の Windows>Source コントロール エクスプローラーを選択します。
ソース管理エクスプローラーで、ファイルを追加するフォルダーに移動します。
Important
このフォルダーがチェックインされていることを確認します。 新しいフォルダーを作成する場合は、フォルダーを右クリックして [チェックイン] を選択し、次に進む前に新しいフォルダーをチェックインします。
Windows ファイル エクスプローラーから Visual Studio ソース管理エクスプローラー ウィンドウにファイルをドラッグします。
チーム エクスプローラーの [保留中の変更] ページで、追加するすべてのファイルが [含まれているアイテム] に一覧表示されていることを確認し、[チェックイン] を選択します。
コードに含まれていないバイナリを使用する
多くのチームは、コード ソリューションの外部に存在するバイナリに依存しています。 通常、これらのバイナリは、チームがサード パーティからライセンスを取得したライブラリの一部であるか、バイナリが同じ会社の別のチームから取得されます。 たとえば、チーム A はチーム B が生成するバイナリに依存し、各チームは異なるプロジェクト コレクションで動作します。 チーム B はバイナリをチーム A に配信し、バージョン管理にチェックインします。
ヒント
NuGet パッケージを使用すると、チームが依存関係を簡単に管理し、バイナリを最新の状態に保つことができます。 Azure Artifacts を使用して、Azure DevOps Server または Azure DevOps Services に NuGet パッケージを格納できます。
外部バイナリの格納に使用するフォルダーとワークスペースの構造は、ソリューションがこれらのライブラリに依存する方法によって異なります。
フォルダーまたはブランチ構造にバイナリを追加する
ソリューション フォルダーを含む同じ親フォルダーに外部バイナリを配置すると、すべてのソリューションのすべてのコード プロジェクトで、同じ相対パスを持つライブラリを参照できます。 たとえば、チームは次のフォルダー構造を使用できます。
その後、すべてのコード プロジェクトで、相対パス ../../Libを使用してライブラリ フォルダーを参照できます。
異なるバージョンのバイナリを必要とする個別の作業をチームで分離する必要がある場合は、ソリューション フォルダーと共にライブラリ フォルダーを分岐できます。 たとえば、アプリのバージョン 1 では、ライブラリのバージョン 1 が利用されます。 一部の開発者は次のバージョンで作業するため、バージョン 2 を使用しますが、他の開発者はアップグレードする準備ができていません。 ブランチを使用して、これらの状況を管理できます。
ワークスペースを使用してバイナリをマップする
企業によっては、外部ライブラリに対するより複雑な依存関係を管理する必要があります。 たとえば、複数のプロジェクトに、共通のライブラリ セットに対して異なる依存関係を持つソリューションが含まれている場合があります。 このような場合は、外部ライブラリを専用プロジェクトに格納できます。 さまざまなプロジェクトの共同作成者は、必要なライブラリを含むフォルダーにマップされます。
たとえば、FabrikamFiber では、次のプロジェクト、ブランチ、フォルダーの構造が配置されます。
開発者は、2 つの異なる作業のために 2 つのワークスペースを持つ開発マシンを設定できます。それぞれの作業は、必要なライブラリ内のマップです。
バージョン コントロールが無視するファイルをカスタマイズする
既定では、バージョン コントロールは、 .dll ファイルなど、特定の種類のファイルを無視します。 無視されたファイルをローカル ワークスペースにマップされているフォルダーに追加するか、無視されたファイルをソース管理エクスプローラーにドラッグすると、チーム エクスプローラーの [保留中の変更] ページの [除外されたアイテム] の下にファイルが表示されます。
無視するファイルの種類を構成するには、構成を適用するフォルダーに .tfignore テキスト ファイルを配置します。 .tfignore ファイルの効果は再帰的ですが、サブフォルダー内の .tfignore ファイルは親フォルダー内の .tfignore ファイルをオーバーライドします。
.tfignore ファイルの規則
.tfignore ファイルには、次の規則が適用されます。
-
#はコメント行を開始します。 -
*および?ワイルドカードがサポートされています。 - filespec は、
\文字の前に付けない限り再帰的です。 -
!は filespec を否定するため、パターンに一致するファイルは無視されません。
.tfignore ファイルの例
######################################
# Ignore .cpp files in the ProjA subfolder 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
#
# Don't ignore .dll files in this folder nor in any of its subfolders
!*.dll
.tfignore ファイルを作成して使用する
上記の規則を使用する .tfignore テキスト ファイルを手動で作成することも、[保留中の変更] ページで除外された変更が検出されたときに .tfignore ファイルを自動的に生成することもできます。
- チーム エクスプローラーの [保留中の変更] ページで、[除外された変更] セクションの [検出された] リンクを選択します。
- [ 候補の変更の昇格 ] ダイアログ ボックスで、無視するファイルを右クリックし、コンテキスト メニューから [ このローカル項目を無視]、[ 拡張子で無視]、[ ファイル名で無視]、または [フォルダーで無視 ] を選択します。
- [ キャンセル] を 選択してダイアログ ボックスを閉じます。
- .tfignore ファイルは、[保留中の変更] ページの [含まれる変更] セクションに表示されます。 このファイルを開き、ニーズに合わせて変更できます。
.tfignore ファイルは含まれる保留中の変更として追加されるため、作成した規則は、ファイルを取得したユーザーに自動的に適用されます。
コマンド プロンプトから作業する
自動化されたプロセスの場合、またはコマンド プロンプトを使用する場合は、この記事の手順の代わりに tf.exe add コマンド を使用できます。
add コマンドは、ローカル コンピューター上のワークスペースからサーバーにファイルをアップロードします。