2012-04-02 13 views
3

PowerShellを使用して、ソリューション内の一連の構成ファイルを変更しています。ソリューションはTFS 2010の管理下にあります。PowerShellとTFS.exeを使用してプロジェクトからファイルを更新および削除する

ソリューションには多くのプロジェクトがあり、設定ファイルはすべてxmlファイルです。簡単な部分は、ファイルを変更するだけで、チェックアウトコマンドを使ってファイルをチェックアウトした後、ファイルを保存することです。すべての良い。私はVisual Studioに移動し、変更されたファイルが予期したとおりに保留中の変更で更新されるのを確認します。

私が問題になっているのは、もはや必要なくなって削除できる構成ファイルです。 deleteコマンドを使用すると、実際にはファイルに保留中の削除がマークされますが、削除されたファイルが格納されているプロジェクトファイルは変更されません。

Visual Studioでファイルを削除すると、プロジェクトファイルが自動的にチェックアウトされ、変更されます。私はコマンドラインの削除を使用して同じ結果を得ていないよ。

私は1,000を超えるファイルを削除しているので、これを手作業で行うことは現実的ではありません。

ご協力いただければ幸いです!

ありがとうございます。

+0

この問題は、Visual Studioの削除コマンドをスクリプト化する方法の方が多いようです。 –

答えて

2

ここには2つのコンポーネントがあります。 VS内で実行すると、プロジェクトシステムはすべてのファイルコマンド(追加、削除、編集など)を処理し、TFSオブジェクトモデルを呼び出して、実際にTFSの変更を保留します。プロジェクトシステムは、プロジェクトファイルから参照を削除するための責任も持っています。 TFS OMは、ファイルがVisual Studioの外部で実行されているときにプロジェクトの一部であるかどうかを認識していません。

ベスト・ベットを削除する必要があるxmlファイルのリストがある場合は、これらのファイルを読み込んでプロジェクト・ファイルから削除するスクリプトを書くことです(プロジェクト・ファイルの編集を保留した後) 。

+0

私はその答えがこれらの線に沿っているのではないかと心配しました。ご回答いただきありがとうございます。 –

+0

実際には、もう一度質問すれば気になりません。私は削除する必要があるファイルに関連付けられているプロジェクトを知っている場合は、DTEを使用してVS内からスクリプトを実行することによってこれを行う方法はありますか? –

+0

私は頭の上から離れているのか分かりません。私は今日、いくつかの研究を行い、すぐにあなたにお返ししようとします。 –

1

-taylor、 TFSバージョン管理の開発は、ご回答ありがとうございました。多くの掘削と試行錯誤の後、私はそれを理解した。それは私が作っていたよりも簡単だった。

要するに、PowerShellコンソールを使用してDTEを使用し、VS内からスクリプトを実行しました。 ProjectItemが対応するプロジェクトをチェックアウトし、それに応じてそれを編集に削除()コマンドを実行

$mySolution = $dte.Solution 
$projectItem = $mySolution.FindProjectItem($fileToRemove) 

if ($projectItem -ne $null) 
{      
    $projectItem.Remove()      
} 

:それはこのような何かを行ってきました。

もう一度、皆さんが私の質問を見て反応してくれてありがとう、もう一度ありがとうございます。これはいつか誰かに助けてくれることを願っています!

関連する問題