早些時候,NuGet Package Manager 發布新的版本,在vs2010中選擇更新,但是一直以來都報告錯誤。
搜索了很久發現很多人都有這個問題,但是國內卻沒有什么介紹。過年前比較忙於其它事情,沒有怎么用VS2010。
今天仔細看了看錯誤信息,內容如下:
2012/1/27 20:59:17 - Microsoft Visual Studio Extension Installer 2012/1/27 20:59:17 - ------------------------------------------- 2012/1/27 20:59:17 - Initializing Install... 2012/1/27 20:59:17 - 擴展詳細信息... 2012/1/27 20:59:17 - Identifier : NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5 2012/1/27 20:59:17 - Name : NuGet Package Manager 2012/1/27 20:59:17 - Author : Microsoft Corporation 2012/1/27 20:59:17 - Version : 1.6.21215.9133 2012/1/27 20:59:17 - Description : A collection of tools to automate the process of downloading, installing, upgrading, configuring, and removing packages from a VS Project. 2012/1/27 20:59:17 - Locale : en-US 2012/1/27 20:59:17 - MoreInfoURL : http://docs.nuget.org/ 2012/1/27 20:59:17 - InstalledByMSI : False 2012/1/27 20:59:17 - MinFramework : 4.0 2012/1/27 20:59:17 - MaxFramework : 4.0 2012/1/27 20:59:17 - 2012/1/27 20:59:17 - 支持的 Visual Studio 版本 : 2012/1/27 20:59:17 - Version : 10.0 2012/1/27 20:59:17 - Pro 2012/1/27 20:59:17 - IntegratedShell 2012/1/27 20:59:17 - VWDExpress 2012/1/27 20:59:17 - VPDExpress 2012/1/27 20:59:17 - Version : 11.0 2012/1/27 20:59:17 - Pro 2012/1/27 20:59:17 - IntegratedShell 2012/1/27 20:59:17 - VWDExpress 2012/1/27 20:59:17 - VPDExpress 2012/1/27 20:59:17 - 2012/1/27 20:59:17 - 支持的獨立 shell : 2012/1/27 20:59:17 - 2012/1/27 20:59:17 - 引用 : 2012/1/27 20:59:17 - 2012/1/27 20:59:18 - 將從版本 1.5.20902.9026 升級該擴展。 2012/1/27 20:59:21 - 已選擇以下目標產品... 2012/1/27 20:59:21 - Microsoft Visual Studio 2010 Ultimate 2012/1/27 20:59:21 - 2012/1/27 20:59:21 - 請先驗證匹配的擴展簽名再進行更新... 已安裝擴展路徑: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager\1.5.20902.9026\ 更新擴展路徑: c:\users\w510_64_u\appdata\local\temp\tmp57be.tmp 2012/1/27 20:59:21 - VSIXInstaller.SignatureMismatchException: “NuGet Package Manager”的更新版本上的簽名與已安裝版本上的簽名不匹配。因此,擴展管理器無法安裝更新。 在 VSIXInstaller.Common.VerifyMatchingExtensionSignatures(IInstalledExtension installedExtension, IInstallableExtension updateExtension) 在 VSIXInstaller.InstallProgressPage.BeginInstallVSIX(SupportedVSSKU targetAppID) 2012/1/27 20:59:21 - 安裝錯誤: VSIXInstaller.SignatureMismatchException: “NuGet Package Manager”的更新版本上的簽名與已安裝版本上的簽名不匹配。因此,擴展管理器無法安裝更新。 在 VSIXInstaller.Common.VerifyMatchingExtensionSignatures(IInstalledExtension installedExtension, IInstallableExtension updateExtension) 在 VSIXInstaller.InstallProgressPage.BeginInstallVSIX(SupportedVSSKU targetAppID)
是版本簽名不匹配的問題造成的,選擇卸載也沒有辦法卸載該工具。因為在vs2010里面唯獨這個工具在擴張管理器里面是無法卸載的。
說是沒有權限,但是我使用管理員權限也無法卸載。
最終我干脆到上面所說的vs2010的擴展文件夾下面把這個Nuge Package Manager文件夾給干掉。
呵呵,重新啟動vs2010之后,竟然vs2010擴展管理器里面沒有再顯示安裝了此擴展了。
於是到連機庫里面找到該擴展,並進行安裝。
問題解決。
同時發現微軟的這些擴展包都是在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions這個目錄下面,如果對文件夾進行更名的話,VS2010重啟之后還是能夠加載該文件夾下的擴展工具。
這說明這些安裝的擴展工具並沒有在注冊表或者vs的其它配置文件中寫入什么東西來記錄,只是通過該文件夾來進行識別的。