SQL Server 2008 SP1 と Team Foundation Server SP1

なんだかお久しぶりです。
先週は、実はプライベートで九州に初上陸していました、ロバートです。
ここ数週間の間、なかなかブログの更新ができていなかったのですが、書きたいことだけはやたらとたまっています。

でも、本日は比較的旬なトピックで…

 

先日から SQL Server 2008 Service Pack 1 が入手可能になりましたので、その環境と Team Foundation Server 2008 Service Pack 1 との互換性についてご説明しようかと思いました。

 

まず、SQL Server 2008 をバックエンドにもつ既存の Team Foundation Server with Serivce Pack 1 の環境に SQL Server 2008 Service Pack 1 を適用しても、特に問題はありません。大丈夫です。It will work。

 

でも、仮に SQL Server 2008 SP1 を適用済みのサーバー環境に Team Foundation Server 2008 SP1 をインストールする場合は注意事項がいくつかあります。

 

実は、Team Foundation Server のインストーラのロジックにあるバージョン チェックの際に、SQL Server のバージョンが NG だと言ってきます。動くか動かないかの問題ではなく (当然、動きますから)、バージョン チェックのロジックが超厳しいだけです。

 

インストールの順番次第で解決する問題ではあるのですが、SQL Server に先に SP1 を適用してしまうことも十分想定できますので、その環境に TFS 2008 SP1 をインストールする方法について、KB が作成されました。

 

KB タイトル: SQL Server 2008 Service Pack 1 がインストールされているコンピュータに Microsoft Visual Studio 2008 Team Foundation Server をインストールする方法
URL (https://support.microsoft.com/default.aspx/kb/969985)

 

ただ、翻訳が若干分かりにくいかと思ったので、以下にて手順を説明しますね (なんてぬかす外国人… w)

 

途中までは、過去に紹介しました 【HOWTO】 SQL Server 2008 をバックエンドにおいた Team Foundation Server 2008 のインストール (シングル サーバー版) と同じです。

sp1_merge01sp1_merge02

SP1 をマージしたインストール ファイルを作成した後からが、注意点になります。

 

 

mergedTFSinstall 
マージしたファイルが含まれるフォルダ (例では C:\MergeFolder としています) の中に含まれる HCPACKAGE.XML を開き修正する必要があります。

まずは、同ファイルの中の以下の文章を検索して下さい:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.00.1433' AND PropertyStrValue LIKE '10.00.% '" action="=" count="0" />

VS で見ると、ここです:
xmlFind01
676行…

上記の WQL 経由の確認を、以下のように書き換えます:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.00.1433' AND PropertyStrValue LIKE '10.% '" action="=" count="0" />

WMI で見ると、以下の辺りですね。
WMI01WMI02WMI03

 

次に、XML ファイル内で、下記の行を検索します:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.0.1433' AND PropertyStrValue LIKE '10.0.% '" action="=" count="0" />

まぁ、次の行なんですけどね。
上記の行に関しては、以下の通り修正します:

<WQL namespace="\\.\root\Microsoft\SqlServer\ComputerManagement10" query="SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName='[%VSTF_SERVICENAME_MSSQL%]' AND PropertyName='VERSION' AND PropertyStrValue&gt;='10.0.1433' AND PropertyStrValue LIKE '10.% '" action="=" count="0" />

 

最後に、以下の行を探します。

<MsiProductVersionCheck prodid="[%SQLServer2008%]" action="&lt;" version="10.1" />
image
VS で検索した結果が上記。これの一番最後の行ですね (Line 713)

上記を以下に書き換えます:

<MsiProductVersionCheck prodid="[%SQLServer2008%]" action="&lt;" version="10.2" />

上記の修正が終わったら、XML ファイルを保存し、Setup.exe を実行すれば SQL Server 2008 SP1 インストール済みの環境に Team Foundation Server with Service Pack 1 のインストールが実行可能になります。

チェック項目のロジックを若干ゆるくしているだけなんですけど、これであればインストールはきちんとできるようになります!

 

めでたし、めでたし。

 

ついでですが、 Visual Studio Team System 2008 Database Edition GDR R2 も先日リリースされていますので、適用忘れないように!!

明日は、改めて Database Edition GDR のところを少しピックアップしようかと思います!