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)