2017-08-11 12 views
0

私はTeam Services(Webベース)のビルドプロセスを初めて利用しています。以前は、バージョン管理用にTFを使用したソリューションの別の質問をしました。問題が解決された偉大な個人に感謝します。私は現在、バージョン管理のためにgitを試していて、同様の状況に遭遇しました。VS Team Services依存関係ビルド

私は、プロジェクトAとBのソリューション1を持っています。ここでBはA(共通コード)に依存しています。プロジェクトAは異なるソリューション2の下にありますが、「既存のプロジェクトを追加...」を介してソリューション1に追加されました。ソリューションとプロジェクトの両方が異なるgit repoの下にあります。プロジェクトBのサブモジュールを使用してプロジェクトAをプルすると、その部分が動作します。プロジェクトAを「d:\ a \ 1 \ s \ ProjectA」と「 」に入れると、ビルドエージェントがプロジェクトBをビルドしようとすると「d:\ a \ 1 \ s \ ProjectB ...」と表示されます。 。\ ProjectA \ "に依存します。プロジェクトAの場所をビルドエージェントに伝えるために、この部分をどのように変更しますか?または、プロジェクトAを "d:\ a \ 1 \ s \ ProjectB .... \ ProjectA \"にするサブモジュールにどのように伝えることができますか?

ありがとうございました!

答えて

0

ProjectBをProjectBのサブモジュールとして追加したので、ProjectAをサブモジュール(Solution 2ではなく)で選択して、ProjectBに依存関係を追加する必要があります。したがって、追加したプロジェクトを削除してから、「追加」 - >「既存プロジェクト」 - >サブモジュールからプロジェクトAを選択して「OK」を使用します。

次にコミット/プッシュをVSTS git repoに変更します。 ProjectBをビルドすると、依存モジュールがサブモジュールのパスにあるはずです。

にあるサブモジュールをローカルリポジトリに入れたい場合は、ディレクトリroot/ProjectB/...に行き、git submodule add <URL for the repo including ProjectA>を使用する必要があります。サブモジュールはroot/ProjectB/.../ProjectAにあります。

+0

ありがとう、ありがとう!私はとにかく2番目のルートを使っていました。以前は、サブモジュールを別のフォルダ構造(ルートの上に、次にソリューションファイルの上に1つ上)でロードしたときに2回上がった。サブモジュールをProject Bレベルのローカルリポジトリにロードしていましたが、実際には.gitモジュールを手動で変更する必要はありませんでした。質問 - .gitmodulesのパスが相対パス(なぜそれを動作させるためにローカルパスに変更しなければならなかったのか)と、そこに2つのエントリがあるのはなぜですか? 1つは[プロジェクトA]、もう1つは[プロジェクトB /プロジェクトA]です。 – Joe

+0

'.gitmodules'は相対パスを使い、gitはどのディレクトリがサブモジュールであるかを簡単に見つけます。実際にあなたが追加した参照用に選択したパスは1つだけです( 'ProjectB /.../ ProjectA'を選択して参照を追加したようです)、' projectA/'の場合、あなたが追加したサブモジュールprojectBでは、ビルドは 'ProjectB /.../ ProjectA'で指定した参照のみを検索します。 –

関連する問題