Visual studio 安装程序检测到vcredist_x64\vc_redist.x64.exe自最初发布以来已被更改
我一直在尝试为exe文件制作一个安装程序,但我似乎无法让它工作。无论何时运行setup.exe,都会显示错误消息 安装程序检测到C:\Users[name]\AppData\Local\Temp\VSD4F7F.tmp\vcredist\u x64\vc\u redist.x64.exe自最初发布以来已被更改 我试图让它从与我的电脑相同的位置下载,但这也不能像它在构建解决方案时那样工作,因为它出错了,说找不到文件。我把正确的文件放在Packages文件夹中,但它仍然不起作用Visual studio 安装程序检测到vcredist_x64\vc_redist.x64.exe自最初发布以来已被更改,visual-studio,Visual Studio,我一直在尝试为exe文件制作一个安装程序,但我似乎无法让它工作。无论何时运行setup.exe,都会显示错误消息 安装程序检测到C:\Users[name]\AppData\Local\Temp\VSD4F7F.tmp\vcredist\u x64\vc\u redist.x64.exe自最初发布以来已被更改 我试图让它从与我的电脑相同的位置下载,但这也不能像它在构建解决方案时那样工作,因为它出错了,说找不到文件。我把正确的文件放在Packages文件夹中,但它仍然不起作用 作为参考,我正在使用
作为参考,我正在使用64位PC进行开发,exe是为64位设计的,而我正在测试的干净PC是64位的。我也在使用Windows 10和Visual Studio 2019。我也有同样的问题,我找到了一种解决方法: 似乎当安装程序创建引导程序(setup.exe)时,它会嵌入来自C:\Program Files(x86)\Microsoft SDK\ClickOnce bootstrapper\Packages\vcredist\U x64\product.xml的信息。更准确地说,它似乎在设置中嵌入了vc++可再发行版本的公钥 当用户运行安装程序时,bootstrapper从Microsoft的web(在我的例子中)下载vcredist并检查数字签名。如果下载文件的公钥与安装程序中嵌入的公钥不匹配,则会出现错误 现在,我设法通过手动编辑C:\Program Files(x86)\Microsoft SDK\ClickOnce Bootstrapper\Packages\vcredist\u x64\product.xml将下载的vcredist公钥放入xml文件并重建安装程序项目来修复它(某种程度上) 但是,如果Microsoft再次更改vcredist上的签名,我的安装程序将再次开始抛出错误 它快把我逼疯了。我正在考虑: a) 从我的安装程序中删除先决条件并指示用户安装vcredist 他们自己 或 b) 在我自己的网站上托管vcredist(并选中“从与我的应用程序相同的位置下载必备软件”)
这两种解决方案都有明显的缺点,但每次Microsoft发布“新”时都会更新安装程序“vcredist也不是一个选项这应该会出错,Microsoft不再维护引导程序包。您可能正在使用的最后一个版本尝试部署VS2015版本,但得到的是已更改的VS2019版本。除此之外,考虑一下你根本不应该使用这个包裹。它面向最终用户,仅适用于ClickOnce部署。只需将运行时DLL与安装程序一起复制,最好是复制到与.exe相同的目录。通常只有vcruntime140.dll和msvcp140.dll,调试>窗口>模块以确保。