簡體   English   中英

如何調試 vc_redist 引導程序的問題?

[英]How to debug problems with vc_redist bootstrapper?

我有一個 Visual Studio 安裝程序項目(一個 vdproj),它不會將 VC 可再發行組件安裝為先決條件。 我不知道為什么。

我正在使用帶有安裝程序項目擴展的 Visual Studio 2019 的最新更新。 這是我的先決條件設置:

先決條件設置

在安裝時,我收到一條錯誤消息,提示vc_redist.x64.exe has changed since it was initially published I checked bootstrap at C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\vcredist_x64 and discovered that the URL found there ( https://aka.ms/vs/16/release/14.26.55555/vc_redist. x64.exe )重定向到微軟主頁並下載 HTML 而不是可執行文件。 So I changed the URL, first to https://aka.ms/vs/16/release/vc_redist.x64.exe , then to https://aka.ms/vs/16/release/14.27.29016/vc_redist. x64.exe 當您使用 web 瀏覽器訪問它們時,這兩個 URL 都會下載 VC_redist.x64.exe 的副本,但它們都沒有修復安裝程序。

更改 URL 后,我看到的唯一區別是,與原始 URL 相比,我在臨時安裝文件夾中得到一個名為 vcredist_x64\vc_redist.x64.exe 的文件(但它是無效的,充滿了 HTMList_),但 x64文件夾為空。

知道我需要做什么才能使其正常工作嗎?

我找到了解決方案。 我需要更改 URL公鑰。 以下是您將來解決此類問題時應遵循的步驟:

  1. 找到 URL 到仍然可用的版本。 當前可從此處獲得最新版本: https://aka.ms/vs/16/release/vc_redist.x64.exe 同一個文件的特定版本 URL 當前是http://aka.ms/vs/16/release/14.27.29016/vc_redist.x64.exe
  2. 記下版本號。 如果您還不知道,只需將鼠標懸停在文件資源管理器中下載的文件上即可獲得它。
  3. 找到公鑰。 我從這個問題的答案中學會了如何做到這一點。 您可以通過右鍵單擊 vc_redist.x64.exe 找到密鑰,選擇propertiesDigital Signatures ,然后雙擊sha1條目。 單擊查看證書,然后單擊詳細信息,然后單擊公鑰 復制文本框中顯示的值。
  4. 從您復制的公鑰中刪除所有空格。 vc_redist.x64.exe v14.27.29016 的公鑰是: 3082010a02820101009208daf213e09ec32da6e2dfdaef8c19ec2f584f0bf53f20b806f33f91258f36cf27d114def85bd87d4f84f6e7f4b7b9d8940cc78cafa99627f60610fe36076121443cb15c163b7f6d8ef4111e33f6fffbd2bc87e69a446830bd488678ecf64422650cd8443618469f71490626470423939865f3f53b4603a24038ad547694ec14f5308f7695f651b882030d805dbd7b5b7256093153b0a99b6fd0ef73402adeb7a47e7d148668335f104a5c20b2fe0fb455dcce2e6891384dae8a00e76f57e315689a7561715364f2ada631cee9df691d03d9886ecd742e906e74469ac6b8f2e350adbe807e62ca0c8d4ba77d56328813697e6d65ff82653f4f4aebe33822cd0203010001
  5. 以管理員身份在文本編輯器中打開C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\vcredist_x64\product.xml
  6. PublicKey的值替換為您在步驟 4 中准備的密鑰。
  7. BypassIf元素中,將Value替換為您在步驟 2 中記下的版本。保存並關閉文件。
  8. 以管理員身份在文本編輯器中打開C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\vcredist_x64\en\package.xml
  9. VCRedistExe替換為步驟 1 中的 URL。您可以使用通用的或特定於版本的 URL。 他們都有缺點。 保存並關閉文件。
  10. 重建您的安裝程序。

您可能需要針對您的環境進行調整。

關於 URL 的選擇,我懷疑兩者都不會永遠有效。 如果您使用特定於版本的 URL,則該版本可能會 go 消失(這是我們首先需要解決這個問題的全部原因)。 如果您使用與版本無關的 URL,那么當新版本發布時,產品密鑰可能不匹配。

非常不幸的是,微軟通過刪除舊的 redist 軟件包來破壞現有的安裝程序,並且沒有提供新安裝程序開箱即用所需的更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM