1. 程式人生 > >Visua Studio2017:安裝已完成,但出現警告,sqlncli安裝報錯

Visua Studio2017:安裝已完成,但出現警告,sqlncli安裝報錯

安裝Visua Studio2017過程中,安裝已完成,但出現警告問題。如下圖所示:

檢視日誌資訊顯示如下:

未能安裝包“sqlncli,version=15.1.61810.11040,chip=x64,language=zh-CN”。
詳細資訊
    MSI: D:\ProgramData\Microsoft\VisualStudio\Packages\sqlncli,version=15.1.61810.11040,chip=x64,language=zh-CN
    \sqlncli.msi,屬性:  REBOOT=ReallySuppress  MSIFASTINSTALL="7"  IACCEPTSQLNCLILICENSETERMS="YES"  ADDLOCAL="ALL"
    SKIPPENDINGREBOOTCHECK="1"
    返回程式碼: 1603
    返回程式碼詳細資訊: 安裝時發生嚴重錯誤
    訊息 ID: 1723
    訊息詳細資訊: 此 Windows Installer 包有問題。無法執行完成此安裝所需的 DLL。請與技術支援人員或包供應商聯絡。
日誌
    C:\Users\asus\AppData\Local\Temp\dd_setup_20181116094728_326_sqlncli.log
工作負荷受到影響
    .NET 桌面開發 (Microsoft.VisualStudio.Workload.ManagedDesktop,version=15.8.27906.1)
    使用 C++ 的桌面開發 (Microsoft.VisualStudio.Workload.NativeDesktop,version=15.9.28307.102)
元件受到影響
    C++ 的體系結構工具 (Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native,version=15.0.26208.0)
    SQL Server Express 2016 LocalDB (Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime,version=15.7.27617.1)
    SQL Server Native Client (Microsoft.VisualStudio.Component.SQL.NCLI,version=15.0.26208.0)
    Visual C ++ 核心桌面功能 (Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core,version=15.8.27729.1)
程式碼圖 (Microsoft.VisualStudio.Component.CodeMap,version=15.0.26208.0)

 看問題描述是由於sqlncli元件包安裝失敗影響到其它元件的安裝,於是單獨下載此安裝包sqlncli.msi進行安裝,發現安裝報錯。報錯資訊如下圖所示:

這個錯誤資訊跟安裝VS2017過程中報錯的提示資訊相一致,說明是因為sqlncli元件包安裝失敗導致的VS安裝失敗。

解決方法:

1、下載MSI編輯器軟體:

2、查詢到VS2017安裝過程中下載的sqlncli.msi安裝包檔案,這個可以根據上述日誌資訊中的內容可以很容易的確定位置。

MSI: D:\ProgramData\Microsoft\VisualStudio\Packages\sqlncli,version=15.1.61810.11040,chip=x64,language=zh-CN

3、使用ORCA MSI Editor開啟VS2017安裝包中下載的sqlncli.msi檔案,64位機器搜尋 “SNAC_SetClientSSNLDefaults_64”,32位機器搜尋”SNAC_SetClientSSNLDefaults_32”我注意到在對比SQL server 2010的時候,SQL 2010的”SNAC_SetClientSSNLDefaults_32”的值為($DP_sqlncli10_dll_32 = 3) 並且安裝都是成功的。我們知道在system64 資料夾中SQL 2012的dll檔案的名字是sqlncli11.dll,所以我們可以直接修改sqlncli.msi檔案中的這個“SNAC_SetClientSSNLDefaults_64”的值。

 將SNAC_SetClientSSNLDefaults_64的值改為($DP_sqlncli11_dll_32 = 3),儲存並安裝。

4、然後在繼續安裝VS2017後續其他的元件。即可以安裝成功。

參考連結:

未能安裝包“sqlncli,version=15.1.61810.11040,chip=x64,language=zh-CN”。
詳細資訊
    MSI: D:\ProgramData\Microsoft\VisualStudio\Packages\sqlncli,version=15.1.61810.11040,chip=x64,language=zh-CN
    \sqlncli.msi,屬性:  REBOOT=ReallySuppress  MSIFASTINSTALL="7"  IACCEPTSQLNCLILICENSETERMS="YES"  ADDLOCAL="ALL"
    SKIPPENDINGREBOOTCHECK="1"
    返回程式碼: 1603
    返回程式碼詳細資訊: 安裝時發生嚴重錯誤
    訊息 ID: 1723
    訊息詳細資訊: 此 Windows Installer 包有問題。無法執行完成此安裝所需的 DLL。請與技術支援人員或包供應商聯絡。
日誌
    C:\Users\asus\AppData\Local\Temp\dd_setup_20181116094728_326_sqlncli.log
工作負荷受到影響
    .NET 桌面開發 (Microsoft.VisualStudio.Workload.ManagedDesktop,version=15.8.27906.1)
    使用 C++ 的桌面開發 (Microsoft.VisualStudio.Workload.NativeDesktop,version=15.9.28307.102)
元件受到影響
    C++ 的體系結構工具 (Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native,version=15.0.26208.0)
    SQL Server Express 2016 LocalDB (Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime,version=15.7.27617.1)
    SQL Server Native Client (Microsoft.VisualStudio.Component.SQL.NCLI,version=15.0.26208.0)
    Visual C ++ 核心桌面功能 (Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core,version=15.8.27729.1)
程式碼圖 (Microsoft.VisualStudio.Component.CodeMap,version=15.0.26208.0)