2016-03-23 5 views
3

私は8つのvmsを持っていますが、それぞれに製品コードがあります。 mstestを使用してリモートで実行される、コード化された自動化を起動できるアプリケーションを作成しました。今問題は、最近更新されたコードを実行するために、すべての8 vmsに最新のdllをコピーして貼り付けなければならないたびに、ローカルマシンからvmへファイルを転送することは、ネットワーク経由でコピーする永遠のようなものです。tfsから最新のものを入手し、バッチファイルからソリューションを構築する

バッチファイルを作成してtfsサーバーから最新のコードをダウンロードして、各VMにコード化テストコードをビルドする方法はありますか?

私はtf getを知っていますが、msbuildはこれに使用できますが、サーバから最新のものを取得すると、ソリューションをビルドする前に最初に解決する必要があるため、正しく使用する方法がわかりません。

get操作を実行中にコマンドラインを使用してソリューション全体を置き換える方法はありますか?

私の問題を解決するためのより良いアプローチがありますか?

ありがとうございます!

+0

tf.exe GETコマンドに関するドキュメント:https://msdn.microsoft.com/en-us/library/fx7sdeyf(v=vs.100).aspx – user469104

+0

コンパイルされたDLLの数はいくつですか?いくつのDLLがありますか?すべてのDLLが毎回または通常わずか数だけ変更されますか?すべてのDLLは同じサイズですか、それともいくつかの大きなDLLがあり、残りは小さいですか? – chief7

+0

主にdllが1つだけです。しかしxmlファイルも追加されているので、tfsから最新のものを入手する必要があります。大きな変更がある場合、3〜4のdllがヒットします。 –

答えて

0

また、Team Foundation Power Tools(link to tfpt)を使用することもできます。非常に便利な小さなユーティリティ=)です。 Specificially、あなたのワークスペースがTFSと同じであることを確認したい場合は、あなたが使用できます。あなたはMD5の差分だけではなく、読み取り専用ビットを(チェックしたい場合を除き

tfpt scorch /diff /deletes /recursive /noprompt 

おそらく/diffを必要としませんこれはサーバー/ローカルのワークスペースにも依存します)。 /recursiveは、ルートフォルダを指定していないため、この場合も何も実行しない可能性があります。これは、これをワークスペース全体に適用したいと思うので大丈夫です。

私はVisual Studio Dev Promptからこれを呼び出さなければならないと確信しています。あなたは同様にあなたのバッチファイルに行を追加することができます。

call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86_amd64 

がこのように投稿を参照してください:How to create a Batch File for Visual Studio Command Prompt

ミカエルのポストはまた、私の答えは、競合を解決して助けにはならないと良い答えです。私の答えは、すべてを拭き取り、それを復元する(必要に応じて)という方向に沿っています。

+0

これはPerryの魅力のように働いた。ありがとう! :) –

+0

サーババージョンのものから変更されたファイルを置き換えなければならない場合は、ただ1つの質問を念頭に置いてください。それはtfptを使って行うことができますか? –

+0

私は 'tfpt treeclean'、 'tfpt scorch'(私の答えで言及したように)、' tfpt uu 'Team Foundation Power Toolコマンドを見て、あなたのニーズに最も適したコマンドを見ていきます。私の最高の推測は、scorch/treecleanが重すぎると、あなたが探しているものであるかもしれないということです。 – PerryC

0

あなたはソリューション全体を交換し、ゼロから構築したい場合、私はあなただけのフォルダを削除してからそれを得る示唆:

rd /s MySolutionFolder 
    tf get MySolutionFolder 

しかし、これはもちろん、いくつかの時間がかかります。

VM上のファイルを編集していない限り、tf getは競合を引き起こすべきではありません。ファイルを編集している場合は、tf getとtf resolveの組み合わせを使用してそれらの問題に対処することができます。このようなものを使って競合を無視し、サーバーのバージョンを取得することができます。

tf get MySolutionFolder /recursive /noprompt 
tf resolve /auto:taketheirs 
+0

ありがとうミカエル!これは非常に良い解決策です! –

+0

OK、よかった!あなたはそれを答えとしてマークしてもよろしいですか? –

+0

私は彼のアプローチを使用して私のために働いて以来、私はペリーのソリューションを答えとしてマークしました。 –

関連する問題