Microsoft SQL Server 2017 のインストールに失敗した

こんにちは。エクセルソフトの田淵です。

開発用マシンに MS SQL Server 2017 Developer Edition をインストールしていた時に、以下のエラーが出てインストールができませんでした。

結論から言うと、私の場合は、Visual Studio 2017 をインストールした時に一緒にインストールされた(と思われる)「Visual Studio 2017 用 Microsoft Visual C++ 再頒布可能パッケージ」を削除したらインストールできた。でした。

汎用的な書き方をすると、

VC++ 2015 再頒布パッケージ(=Visual Studio 2015 用 Microsoft Visual C++ 再頒布可能パッケージ)を同時にインストールするインストーラーは、VC++ 2017 再頒布パッケージ(=Visual Studio 2017 用 Microsoft Visual C++ 再頒布可能パッケージ)がインストールされているとダウンロードに失敗してインストールに失敗する。

です。

経緯

え、こんなことある?と思って、エラーを見てみると、「Microsoft Visual C++ 2015 再頒布可能パッケージ」のインストールエラーとのこと。

再頒布パッケージって、アップデートが色々あって、どれが一番新しいのかわかりづらいですよね。探したら再頒布パッケージの最新版のリンクが纏まっているページ 最新のサポートされる Visual C++ のダウンロード を見つけたので、このページにあったリンク Visual Studio 2015 Update 3 用 Microsoft Visual C++ 再頒布可能パッケージ をダウンロードしてインストールしてみました。

んんん??別のバージョンが入っているからインストールできない…??

以下のログが出ていました。

[4BC4:1604][2018-12-11T10:21:58]i001: Burn v3.7.3813.0, Windows v10.0 (Build 17134: Service Pack 0), path: C:\Users\<ユーザー名>\Downloads\vc_redist.x64.exe, cmdline: ''
[4BC4:1604][2018-12-11T10:21:58]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\<ユーザー名>\AppData\Local\Temp\dd_vcredist_amd64_20181211102158.log'
[4BC4:1604][2018-12-11T10:21:58]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\<ユーザー名>\Downloads\vc_redist.x64.exe'
[4BC4:1604][2018-12-11T10:21:58]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\<ユーザー名>\Downloads\'
[4BC4:1604][2018-12-11T10:21:58]i000: Setting string variable 'WixBundleName' to value 'Microsoft Visual C++ 2015 Redistributable (x64) - 14.0.24212'
[4BC4:1604][2018-12-11T10:21:59]i100: Detect begin, 10 packages
[4BC4:1604][2018-12-11T10:21:59]i000: Setting version variable 'windows_uCRT_DetectKey' to value '10.0.17134.319'
[4BC4:1604][2018-12-11T10:21:59]i000: Setting numeric variable 'windows_uCRT_DetectKeyExists' to value 1
[4BC4:1604][2018-12-11T10:21:59]i102: Detected related bundle: {427ada59-85e7-4bc8-b8d5-ebf59db60423}, type: Upgrade, scope: PerMachine, version: 14.16.27012.6, operation: Downgrade
[4BC4:1604][2018-12-11T10:21:59]i108: Detected compatible package: vcRuntimeMinimum_x64, provider: Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v14, installed: {3ECD99CB-EDAF-45DA-AD9C-2C4875F375FB}, version: 14.16.27012, chained: {FAAD7243-0141-3987-AA2F-E56B20F80E41}
[4BC4:1604][2018-12-11T10:21:59]i103: Detected related package: {3ECD99CB-EDAF-45DA-AD9C-2C4875F375FB}, scope: PerMachine, version: 14.16.27012.0, language: 0 operation: Downgrade
[4BC4:1604][2018-12-11T10:21:59]i108: Detected compatible package: vcRuntimeAdditional_x64, provider: Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14, installed: {DF5B1280-A057-4536-9D03-3BCAA0D4C6F0}, version: 14.16.27012, chained: {F20396E5-D84E-3505-A7A8-7358F0155F6C}
[4BC4:1604][2018-12-11T10:21:59]i103: Detected related package: {DF5B1280-A057-4536-9D03-3BCAA0D4C6F0}, scope: PerMachine, version: 14.16.27012.0, language: 0 operation: Downgrade
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.3 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.3 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.2 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.2 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.1 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.1 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.0 AND NOT VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i052: Condition '(VersionNT = v6.0 AND VersionNT64) AND (windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10240.0)' evaluates to false.
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: vcRuntimeMinimum_x64, state: Obsolete, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: vcRuntimeAdditional_x64, state: Obsolete, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows81_x86, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows81_x64, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows8_x86, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows8_x64, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows7_MSU_x86, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: Windows7_MSU_x64, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: WindowsVista_MSU_x86, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i101: Detected package: WindowsVista_MSU_x64, state: Absent, cached: None
[4BC4:1604][2018-12-11T10:21:59]i052: Condition 'VersionNT64 >= v6.0 OR (VersionNT64 = v5.2 AND ServicePackLevel >= 1)' evaluates to true.
[4BC4:1604][2018-12-11T10:21:59]i199: Detect complete, result: 0x0
[4BC4:2B8C][2018-12-11T10:22:10]e000: Error 0x80070666: Cannot install a product when a newer version is installed.

ログで気になったのは、ダウングレードしようとしているバージョンが「14.16.27012.6」で、これって C++ 2017 の再頒布パッケージですよね。実際、私の環境には C++ 2015 のパッケージは入っていませんでした。

また、SQL Server インストーラーに C++ 2015 のインストールをさせない(=VC 2017 のライブラリを参照するようにするとか?)事も、さっとはできないっぽかったので、VC++ 2015 のパッケージをインストールできるように、VC++ 2017 パッケージを削除しました。ついでに VC++ 2013 のパッケージが複数入っていたので、それも最新だけ残して削除してます。

で、再度 C:\SQLServer2017Media\Developer_JPN にダウンロードされたインストールメディアからインストールしてみました。

おおおおおおお!!やったぜ。

ということで、冒頭に書いたとおり、私の場合は、Visual Studio 2017 をインストールした時に一緒にインストールされた(と思われる)「Visual Studio 2017 用 Microsoft Visual C++ 再頒布可能パッケージ」を削除したらインストールできた。でした。

アンインストールした VC++ 2017 のパッケージも 最新のサポートされる Visual C++ のダウンロード のページからインストーラーをダウンロードして再度インストールしました。

と、ここで衝撃の事実w VC++ 2017 再頒布パッケージをインストールすると、VC++ 2015 再頒布パッケージが消えちゃうw 同じファイルとして認識されているから、VC++ 2015 パッケージをインストールしようとすると、VC++ 2017 の再頒布パッケージをダウングレードしようとしたのかー。

結果として、最終的にインストールされている VC++ の再頒布パッケージは最初とほぼ同じようになりましたw

一通り SQL Server 関連のツールを起動してみたけど問題なさそうなので、これで終了とします。

今時こんなインストールでのコンフリクト問題とか発生するんですね…

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする