相关疑难解决方法(0)

检测是否安装了Visual Studio 2012的Visual C++ Redistributable

如何检测Visual Studio 2012的Visual C++ Redistributable是否已安装?

我试过谷歌,没有人问这个问题,惊喜!

visual-c++

103
推荐指数
8
解决办法
13万
查看次数

如何使用Visual Studio Express 2005创建完全静态链接的.exe?

我目前首选的C++环境是免费且非常出色的Microsoft Visual Studio 2005 Express版本.我不时将发布的.exe文件发送给其他人,结果令人满意.然而,最近我做了一个令人不安的发现,令人愉快的结果是基于我想要的更多运气.试图在一个旧的(2001年份,没有严格更新)XP盒子上运行这些程序之一,只给我一个讨厌的"系统无法运行x.exe"(或类似)消息.

一些谷歌搜索显示,使用此工具集,甚至指定静态链接会导致一个简单的hello-world.exe实际上依赖于额外的.dll文件(msvcm80.dll等).一个非常复杂的版本策划系统(清单文件任何人?)然后将不会让.exe运行没有完全正确的.dll版本.我不想要或不需要这些东西,我只想要一个老式的自包含.exe,除了最低的公分母Win32操作之外什么都不做,并且可以在任何旧的win32操作系统上运行.

有谁知道它是否可以用我现有的工具集做我想做的事情?

谢谢.

c++ linker visual-studio

99
推荐指数
3
解决办法
12万
查看次数

如何找到已安装的MSI设置的产品GUID?

我需要找到产品GUID对于安装MSI文件,以进行维护,如补丁,卸载,也为审计目的.

powershell install windows-installer wix uninstall

58
推荐指数
1
解决办法
18万
查看次数

如何检测是否需要安装VCRedist?

我有一个与问题非常相似的问题,但答案对我不起作用.

软件我维护设置取决于VC++ 2008(精确地说是SP1),因此我需要找到一个安装VCRedist的解决方案(如果尚未安装).我理解正确的方法是用合并模块构建msi,但它不在我手上.

我所指的重复问题(被接受的问题)的答案对我不起作用,因为每个小版本(例如9.0.30729.01 vs 9.0.30729.17)都有适当的GUID,我无法猜测或预测未来的版本.此外,我认为这不会检测Visual Studios,因此当它已经在开发者机器上时不必要地安装VCRedist Package.我不想用这个来惹恼任何人,当然不是那些已经安装了DevStudio的人.

现在另一个答案说我应该看看WinSxs文件夹,$WINDIR\WinSxS\x86_Microsoft.VC80.CRT_但是这还没有(但)帮助我暗示SP1,或者此时我还缺少什么?是否有一个带有内部和"外部"版本号的表,所以我可以暗示某个次要版本号?

我无法相信微软没有为这种情况提供任何东西,但是现在搜索互联网的时间已经太久了,现在让我回到了好的地方.

installation redistributable visual-c++

20
推荐指数
3
解决办法
4万
查看次数

Wix Burn vcredist

我有一个使用Visual Studio 2015开发的c ++应用程序,以及一个Wix安装程序和一个Burn bootstrapper.该应用程序的早期版本能够使用Visual Studio合并模块来安装必要的先决条件,但在使用Visual Studio 2015时看起来这不是一个选项(请参阅Redistributables用于部署在Windows 7上使用Visual Studio 2015开发的C++ exe)).

根据该链接中的建议,我们已经开始使用带有vital ="yes"的ExePackage在Burn中安装vcredist.这通常很有效 - 我们有几个客户由于vcredist的各种问题导致安装失败.直到最近,这些都是导致安装失败的错误.

在过去的几天里,由于安装了较新版本的可再发行组件,我们收到了几个安装程序失败的报告:vcredist失败,错误代码为0x80070666,导致我们的引导程序失败.

我的问题是:

  1. 正在部署vcredist的"正确"方法吗?(假设我们需要一个exe安装程序)
  2. 我们如何知道安装了哪些版本的可再发行组件(不一定在引导程序中,这些信息是否以某种用户可读形式存储)?
  3. 是否有我们应该分发的可再发行版本的更新版本?(目前使用14.0.23026)这是基于用于编译的Visual Studio版本还是应该始终分发最新版本?(当前VS版本14.0.23107.0)
  4. 作为最后的手段,是否可以检测从vcredist返回的错误代码并允许该值确定安装是继续还是失败?

wix burn vcredist visual-studio-2015

19
推荐指数
1
解决办法
7449
查看次数

用于部署在Windows 7上使用Visual Studio 2015开发的C++ exe的可再发行组件

我使用Visual Studio 2015(在Windows 10上)开发了一个32位C++应用程序.我想将它部署到运行Windows 7及更高版本的计算机上.

我把一个WiX的安装程序并按照上述方法包括VC++可再发行合并模块这里.我包含的合并模块是C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC140_CRT_x86.msm.

此安装程序似乎工作正常,但在Windows 7上安装的程序将无法运行,抱怨丢失api-ms-win-crt-runtime-l1-1-0.dll.

从搜索我怀疑有可能是在再发行组件包额外的文件vc_redist.x86.exe这里,但WiX的文档告诉我用的MSM,而不是一个exe.

合并模块也可能无法安装.我没有看到任何错误,但我没有重新运行它,启用日志来检查这种可能性.

另一种选择可能是使用,burn但我不熟悉这个工具; 如果这是正确的,我会走那条路,但如果可能的话,我宁愿坚持使用MSI.

wix visual-studio

17
推荐指数
1
解决办法
6627
查看次数

如何检测是否安装了Visual C++ 2017 Redistributable

随着Microsoft在其最新版本中更改注册表项的模式,我如何检测是否在计算机上安装了Visual C++ 2017 Redistributable?

我的目标是安装VC++ 2015Redist,因为该软件是使用VS2015编写的.如果我能在一台机器上成功检测到VC++ 2017Redist,那么我跳过安装VC++ 2015Redist

redistributable visual-c++ vcredist visual-c++-2015 visual-c++-2017

10
推荐指数
3
解决办法
9794
查看次数

WIX 合并 C++ 运行时

我已经合并了 msm 与 2015 crt:

<DirectoryRef Id="TARGETDIR" >
<Merge Id = "Microsoft_VC140_CRT_x64.msm" FileCompression = "yes" Language = "1033" SourceFile = "..\\..\\..\\..\\..\\..\\..\\external\\tools\\systemsetups\\merge_modules\\Microsoft_VC140_CRT_x64.msm" DiskId = "1" />"
</DirectoryRef>
<Feature>
<Feature Id="Complete" Title="Complete" Absent="allow" Level="1">
...
<MergeRef Id="Microsoft_VC140_CRT_x64.msm"/>
...
</Feature> 
Run Code Online (Sandbox Code Playgroud)

但我仍然收到:

---------------------------
MyApp.exe - System Error
---------------------------
The program can't start because mfc140u.dll is missing from your computer. Try reinstalling the program to fix this problem. 
---------------------------
OK   
---------------------------
Run Code Online (Sandbox Code Playgroud)

有什么想法如何正确合并它吗?

windows-installer wix visual-c++-runtime

3
推荐指数
1
解决办法
1827
查看次数