マシンを現在のバージョン (またはそれ以降、将来のバージョン) の tfpt に自動的に移行する方法を提供する必要があります。また、Microsoft.TeamFoundation.PowerShell コマンドレットをインストールする必要がありますが、何らかの理由で、tfpt.msi の実行時に既定ではインストールされません。そのため、多くのマシンでコマンドレットが欠落しています。最後に、これはより大きなスクリプトの一部になるため、アクションが不要な場合にすばやく短絡できるとよいでしょう。
さらに、tfpt.msi は、事前にアンインストールせずに再度インストールすることを好まないようです。これは、可能であれば回避したい問題点を示しています。
これまでのところ、私の研究はいくつかの発見につながりました。
- Server 2003 Platform SDK の Orca を使用して tfpt.msi を検査し、powershell コマンドレットが TFPS 機能であることを発見しました。
- 個々の機能は、コマンド ラインから msiexec /i tfpt.msi ADDLOCAL=TFPS を使用してインストールできます。
- さらに、/qn フラグを使用してサイレント インストールを実行できます。おそらく AGREETOLICENSE=yes を使用します。
- win32_product WMI クラスは、どのバージョンの TFPT がインストールされているかを教えてくれますが、非常に遅いです。
- 強制的な msi アップグレードは、msiexec /fvecmus tfpt.msi で実行できます。
要約すると、次のことを行う必要があります。
- tfpt がインストールされていない場合は、TFPS を含む最新のものをインストールします
- tfpt が古いバージョンの場合は、最新バージョンをインストールし、TFPS が含まれていることを確認してください。
- tfpt が最新バージョンであるが、TFPS 機能が見つからない場合は、TFPS をインストールします。
- tfpt が最新で、TFPS 機能がインストールされている場合は、何もしません (できれば迅速に判断してください)。
接続するために残したドットの内訳は次のとおりです。
- tfpt.msi の TFPS 機能がインストールされているかどうかをテストして、現在のインストーラーをスキップできるようにする方法はありますか?
- tfpt.msi の強制アップグレードには、再起動が必要なようです。これは必須ですか?
- msiexec /fvecmus を使用することは、問題に本を投げつけるようなものです。これは通常の方法ですか? アンインストールしてから再インストールした方が良いでしょうか?
アドバイスをいただければ幸いです。