问题标签 [vcredist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1325 浏览

wix - 在 Visual C++ 2015 可再发行包之后,Windows 10 上没有 api-ms-win-crt-runtime-l1-1-0.dll

我的 WIX 安装程序使用api-ms-win-crt-runtime-l1-1-0.dll检测是否需要安装 VCRedist 14(又名 Microsoft Visual C++ 2015 可再发行包),因为没有它,我的 C++ 应用程序使用VStudio 2015 无法在 Windows 7 / 8 / 8.1 上运行,并出现以下著名错误:

程序无法启动,因为您的计算机缺少 api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装程序以解决此问题。

但是,我的应用程序在没有 VCRedist 14 的 Windows 10 上运行良好,尽管 api-ms-win-crt-runtime-l1-1-0.dll 不存在。我不知道如何以及为什么:甚至 Dependency Walker (depends.exe) 也显示错误“找不到api-ms-win-crt-runtime-l1-1-0.dll

在 Windows 10 上,即使我安装了 VCRedist 14,api-ms-win-crt-runtime-l1-1-0.dll 也从未复制到 System32 目录。有谁知道为什么?

任何人都可以解释使用 VS2015 构建的任何 C++ 应用程序如何在 Windows 10 上不需要 VCRedist 14?

0 投票
1 回答
271 浏览

visual-c++ - Will installing VS2015 update 3 VC++ redistributables break other software

As suggested in this post, If I install the VC++ redistributables for VS2015 update 3 am I likely to break other software running on the same PC built with previous updates to VS2015? Similarly, if I stick with update 2 for my release, is this going to get broken at some point in the future when someone installs the redists for update 3?

0 投票
0 回答
163 浏览

c++ - 跨 VS 更新、库链接和 dll 使用的 VCRedist 兼容性

我知道,Visual Studios 的主要版本之间的 VRedist 不兼容(2013 与 2015 不兼容,并且由于 STL 实现不同,需要安装 215 的 VCRedist - 对吗?)。但是,我不确定次要版本如何 - 更新。

假设我们有两个开发环境:

a) VS 2015 更新 2 - 14.0.25123.00 与 VCRedist 14.0.23918
b) VS 2015 更新 3 - 14.0.25421.03 与 VCRedist 14.0.24210

1)
我有一个由VS 2015 Update 2(环境a)构建的lib / dll(特别是OpenCV 2.4.13),这个库可以与VS 2015 Update 3(环境b)中的程序链接吗?用户可以安全地运行安装了 VCRedist 14.0.23918 的程序还是需要安装 VCRedist 14.0.24210?

和逆转的情况......

2)
lib / dll是由VS 2015 Update 3(环境b)构建的,这个库可以与VS 2015 Update 2(环境a)中的程序链接吗?用户可以在安装了 VCRedist 14.0.23918 的情况下安全地运行程序吗?

非常感谢答案。

0 投票
1 回答
3476 浏览

c# - 如何将 VC++ 2015 可再发行组件与 ClickOnce (.NET) 应用程序捆绑在一起?

我有一个在通过 Microsoft ClickOnce 部署的 .NET Framework 4.5 上运行的 C# 应用程序。我还使用了 Microsoft SDK 中的一个名为 DComPerm.exe 的小实用程序,它是一个我必须单独编译的 C++ 应用程序。我的主应用程序用于Process.Start()访问此可执行文件。

当我第一次尝试在客户端计算机上运行它时,我收到一条错误消息,指出当应用程序尝试调用 DComPerm.exe 时 VCRUNTIME140.dll 丢失。

VCRUNTIME140.dll 丢失

这是有道理的……因为该程序是用 C++ 编译的,它需要 Visual C++ 2015 Redistributable 包,该包尚未安装在客户端计算机上。我想让这个过程尽可能轻松,所以我希望我可以将 VC++ 2015 Redist 与我的 ClickOnce 应用程序捆绑在一起。在项目属性 > 发布选项卡下,有一个用于前提条件的按钮,它允许我指定应用程序应该捆绑可再发行包。

发布选项卡上的先决条件

这在理论上听起来很棒,但它不起作用。现在,当我尝试在客户端计算机上安装 ClickOnce 应用程序时,它不起作用。安装失败并指向一个日志文件,其中包含以下相关信息:

'Visual C++ "14" Runtime Libraries (x86)' RunCheck 结果:需要安装

已接受组件“Visual C++ "14" Runtime Libraries (x86)”的安装。

将文件复制到临时目录“C:\Users\Owner\AppData\Local\Temp\VSD3872.tmp\”

将文件下载到“C:\Users\Owner\AppData\Local\Temp\VSD3872.tmp\”

(8/4/2016 12:57:48 PM)从“ http://go.microsoft.com/fwlink/?LinkID=800028&clcid=0x409 ”下载“vcredist_x86\vcredist_x86.exe”到“C:\Users\Owner” \AppData\Local\Temp\VSD3872.tmp\'

于 2016 年 8 月 4 日 12:57:49 PM 完成下载

下载失败,HRESULT=-2146697208

该消息清楚地表明了问题所在:它试图用来下载 redist 包的链接已失效。只有...我不确定如何告诉它找到正确的链接。我很惊讶它无法自动找到它,因为这似乎是 Visual Studio 的一个错误。一些搜索显示正确的链接实际上是this one,但这不是 ClickOnce 正在解决的问题。通过选中该框,我还看到这是我的 csproj 文件的相应 XML 更新:

是否有一些 XML 标记可以用来明确指定位置?或者我还能如何解决这个问题?如何在不破坏我的应用程序的情况下捆绑可再发行组件?

0 投票
0 回答
387 浏览

python-3.x - 带有 Pyinsatller 的 Python 独立 exe 文件

我写了一个 GUI python 脚本(使用 Tkinter),我想以“exe”格式导出它,兼容所有版本的 windows(XP、Vista、7、8、8.1、10)

我正在使用Pyinstaller这样做。此外,我的代码与所有版本的 Python 3 兼容。(3.5, 3.4 ...)

一些解释:

使用Pyinstaller + Python 3.5,我无法在某些窗口中安装输出的 Exe 文件。由于在某些旧版本的windows中出现这个错误:“过程入口点ucrtbase.terminate 不能位于动态链接库api-ms-win-crt-runtime-l1-1-0.dll”。好吧,我搜索了一下,发现错误是因为某些dll文件不存在。解决方案:用户应安装 Microsoft VC redist 2015。

我用 Python 3.4 降级了我的编译,问题似乎解决了。

但问题是:

使用Pyinstaller + Python 3.4,我可以安装输出的 Exe 文件(我在虚拟机的 Win Xp 和 7 中测试了 Exe 文件),但我不确定我的用户是否不会有任何问题。

换句话说,我猜 Pyinstaller for Python 3.4 的输出包含所有需要的 dll 文件,所以不需要安装额外的 MS vc redist,但如何确定呢?

谢谢大家。

0 投票
0 回答
841 浏览

c++ - 无法安装 vc_redist.x64 [未知错误]

各位晚上好,

我目前很难尝试安装 Microsoft Visual C++ Redistributable (x64)

当此错误消息无缘无故出现时,一切都开始了。 api-ms-win-crt-runtime-l1-1-0.dll 丢失

所以我跳进谷歌,很快发现我的笔记本电脑需要当前的 vc_redist 更新。可悲的是,无论我尝试什么,我总是会收到以下错误: 0x80240017 - 未知错误

这个错误已经困扰了我很长时间,我真的希望你们能进一步帮助我。

提前感谢您的帮助!

加油~

0 投票
1 回答
1199 浏览

visual-c++ - 为什么 ucrtbase 会导出 _CxxThrowException?

根据 Dependency Walker,为什么它们导出ucrtbase.dll的某些功能会重叠?vcruntime140.dll

免责声明:目前这对我来说纯粹是学术兴趣。

我目前正在尝试了解 Microsoft Visual-C++ CRT 相关 DLL 文件的布局。在此处查找 UCRT 的信息和一般文件:

简而言之,对于普通的 C++ 应用程序,您在运行时拥有这些(顶级)DLL 依赖项:

  • ucrtbase.dll- “编译器独立”的东西
  • vcruntime<ver>.dll- “编译器依赖”的东西
  • msvcp<ver>.dll- C++ 标准库

可以从该信息中突出显示的是:

从博客条目:

...将 CRT 分成两个逻辑部分: VCRuntime,其中包含进程启动和异常处理等所需的编译器支持功能...

并从 MSDN 页面:

vcruntime 库包含 Visual C++ CRT 实现特定的代码,例如异常处理和调试支持、运行时检查和类型信息、实现细节和某些扩展库函数。该库特定于所使用的编译器版本。

在使用Dependency Walker浏览 DLL 时,我注意到ucrt和 vcruntime 都导出了该函数_CxxThrowException。如果您曾经查看过 vc++ 堆栈跟踪,那么这个函数是老熟人了:

构建异常记录并调用运行环境开始处理异常。

我很惊讶地发现它是从ucrtbase.dllas 中导出的——正如上面的两个引号所表明的那样——我认为这种机器完全属于编译器特定的一面。

memcpy在写这篇文章时,我注意到了其他一些重叠:strstr虽然vcruntime140.dll我预计它们只存在于ucrtbase.

那么这里发生了什么,我可以从中学到什么?

0 投票
1 回答
3074 浏览

inno-setup - 如何使用 Inno Setup 安装 Visual C++ Redistributable Package 2015?

我得到了这条线:

但是有问题,因为它从不安装 vc_redist.64.exe

编辑:这是日志。

你可以帮帮我吗?非常感谢。

0 投票
1 回答
3421 浏览

visual-studio - C++ Redistributable 14 与 VS2017 C++ Redistributable 冲突

我重建了一台笔记本电脑并在此过程中安装了 VS2017,其中包括安装 C++ 2017 Redistributable(x64) - 14.10.24728

我尝试安装其他使用 C++ Redist 14 的应用程序,但它们失败并显示错误消息:

“已安装此产品的另一个版本。无法继续安装此版本。要配置或删除此产品的现有版本,请使用控制面板上的添加/删除程序。”

以下组件安装失败: - Visual C++ "14" 运行时库 (x64)

我尝试安装 C++ Redist (x64) - 14.0.23026 但收到错误消息“已安装此产品的另一个版本等”。

有没有办法在不卸载 VS2017 并恢复到 VS2015 的情况下解决这个问题?

PS:有足够权限的人可以将“visual-studio 2017”添加到标签列表中吗?

0 投票
1 回答
551 浏览

installshield - 如何检查已安装的产品是否处于损坏状态?

我正在通过我的安装程序安装 Visual C++ Redistributable 2013 作为先决条件(如果未安装)。但有时已安装的 VC++ 已损坏,然后我的安装程序无法工作,因为我在 CustomAction 中调用了 DLL 函数。

所以我的问题是:有什么方法可以确定安装的 VC++ 可再发行组件是否已损坏?