Visual studio 2015 “在哪里?”;msvcR140.dll“;?它存在吗?

Visual studio 2015 “在哪里?”;msvcR140.dll“;?它存在吗?,visual-studio-2015,wix,vcredist,Visual Studio 2015,Wix,Vcredist,我最近毕业于VS 2015。出于下面解释的原因,我希望避免运行VC++可再发行文件安装程序。我在安装程序中包含规定的DLL,用于“应用程序本地”安装: MFC140.DLL concrt140.dll msvcp140.dll vccorlib140.dll vcruntime140.dll mfc140u.dll mfcm140u.dll 这似乎奏效了。我的应用程序安装在“virgin”PC上时运行 我的问题是,在哪里可以找到msvcr140.dll 这里提到:。当我在安装了VC Redis

我最近毕业于VS 2015。出于下面解释的原因,我希望避免运行VC++可再发行文件安装程序。我在安装程序中包含规定的DLL,用于“应用程序本地”安装:

MFC140.DLL
concrt140.dll
msvcp140.dll
vccorlib140.dll
vcruntime140.dll
mfc140u.dll
mfcm140u.dll
这似乎奏效了。我的应用程序安装在“virgin”PC上时运行

我的问题是,在哪里可以找到
msvcr140.dll

这里提到:。当我在安装了VC Redistributables的PC上搜索所有目录时,我在任何地方都找不到它。它存在吗?窗户遮住了吗


注意1:为什么我需要避免使用MS VC++可再发行软件安装程序:

  • 它在我的WiX安装程序中显示为一个单独的安装。这对我的市场统计(消费者)来说非常混乱
  • 卸载我的软件时,还需要卸载VC Redist.,这可能会导致复杂性
  • 在一些情况下,出现了某种使PC无法运行的故障。我怀疑VC Redist重复安装。发生的情况是,标准用户不再能够启动任何程序
  • VC Redist。我的安装程序已从25MB膨胀到40MB,额外增加了15MB。通过选择我需要的组件,我将其削减了10MB
  • 用于测试先前版本的WiX代码复杂、神秘且难以理解
  • 是的,我了解自动更新Windows DLL的好处。但是,带有过时DLL的PC比无法使用的PC要好

注意2:我无法进行静态链接,我的应用程序是Win32和MFC dll的混合包,我收到链接器错误。

由于Visual Studio 2015中的错误,“msvcr140.dll”似乎“丢失”

另见和

查看位于“代码>程序文件(x86)\公用文件\合并模块\ MySoftVC140AXCRTXX64 MSM< <代码> >下的官方合并模块,Visual C++ 2015 CRT由以下文件组成:

api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll
api-ms-win-core-file-l2-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-multibyte-l1-1-0.dll
api-ms-win-crt-private-l1-1-0.dll
api-ms-win-crt-process-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
concrt140.dll
msvcp140.dll
ucrtbase.dll
vccorlib140.dll
vcruntime140.dll

另一个选项是通过GyMeMod(从程序文件[x86)\公共文件\合并模块安装C++运行时文件:Morten Frederiksen感谢回复。什么是合并模块?如何与WiX一起使用它们?我会不会有同样的风险破坏系统?这里有一个关于如何在WiX代码中包含mergemodule的指南:Merge module不会在单独的VC redist安装程序中为您带来任何好处。它仍然比只包含需要的DLL更膨胀,它更新了系统DLL。感谢Morten Frederiksen的链接。zett42:这是一个交易破坏者:o)诚实的zett42这是我在“C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT”中看到的全部:concrt140.dll msvcp140.dll vccorlib140.dll vcruntime140.dll。没有“msvcR140.dll”。VS2010中曾经有过,但可惜没有了。@Pierre我真应该查看一下这个文件夹。但我找到了该DLL丢失的原因解释,请参阅更新的答案。我在“C:\Program Files(x86)\Windows Kits\10\Redist\ucrt\DLLs\x86\”中找到了它们。我看到Firefox和Tortoise/SVN在其安装目录中包含了整个api ms win-*.dll集。好吧,如果对他们来说足够好的话。。。