我找到了解决方案。我需要更改 URL和公钥。以下是您将来解决此类问题时应遵循的步骤:
- 找到仍然可用的版本的 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。
- 记下版本号。如果您还不知道,只需将鼠标悬停在文件资源管理器中下载的文件上即可获得它。
- 找到公钥。我从这个问题的答案中学会了如何做到这一点。您可以通过右键单击 vc_redist.x64.exe 找到密钥,选择properties、Digital Signatures,然后双击sha1条目。单击查看证书,然后单击详细信息,然后单击公钥。复制文本框中显示的值。
- 从您复制的公钥中删除所有空格。vc_redist.x64.exe v14.27.29016 的公钥是:
3082010a02820101009208daf213e09ec32da6e2dfdaef8c19ec2f584f0bf53f20b806f33f91258f36cf27d114def85bd87d4f84f6e7f4b7b9d8940cc78cafa99627f60610fe36076121443cb15c163b7f6d8ef4111e33f6fffbd2bc87e69a446830bd488678ecf64422650cd8443618469f71490626470423939865f3f53b4603a24038ad547694ec14f5308f7695f651b882030d805dbd7b5b7256093153b0a99b6fd0ef73402adeb7a47e7d148668335f104a5c20b2fe0fb455dcce2e6891384dae8a00e76f57e315689a7561715364f2ada631cee9df691d03d9886ecd742e906e74469ac6b8f2e350adbe807e62ca0c8d4ba77d56328813697e6d65ff82653f4f4aebe33822cd0203010001
C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\vcredist_x64\product.xml
以管理员身份在文本编辑器中打开。
- 将 的值替换为
PublicKey
您在步骤 4 中准备的键。
- 在
BypassIf
元素中,将 替换为Value
您在步骤 2 中记下的版本。保存并关闭文件。
C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\vcredist_x64\en\package.xml
以管理员身份在文本编辑器中打开。
- 替换
VCRedistExe
为步骤 1 中的 URL。您可以使用通用 URL 或特定于版本的 URL。他们都有缺点。保存并关闭文件。
- 重建您的安装程序。
您可能需要针对您的环境进行调整。
关于 URL 的选择,我怀疑两者都不会永远有效。如果您使用特定于版本的 URL,则该版本可能会消失(这就是我们首先需要解决这个问题的全部原因)。如果您使用与版本无关的 URL,那么当新版本出现时,产品密钥可能会不匹配。
非常不幸的是,微软通过删除旧的 redist 软件包来破坏现有的安装程序,并且没有提供新安装程序开箱即用所需的更新。