Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否在不使用Microsoft.VC90.CRT的其余部分的情况下分发msvcr90.dll?_Windows_Visual Studio_Assemblies_Software Distribution_Msvcr90.dll - Fatal编程技术网

Windows 是否在不使用Microsoft.VC90.CRT的其余部分的情况下分发msvcr90.dll?

Windows 是否在不使用Microsoft.VC90.CRT的其余部分的情况下分发msvcr90.dll?,windows,visual-studio,assemblies,software-distribution,msvcr90.dll,Windows,Visual Studio,Assemblies,Software Distribution,Msvcr90.dll,我有一个EXE,它是使用VisualStudio2008从C源代码构建的。因此,EXE包含一个清单,其中包括以下内容: <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assembly

我有一个EXE,它是使用VisualStudio2008从C源代码构建的。因此,EXE包含一个清单,其中包括以下内容:

<dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
是否需要包括所有4个文件?因为我的源代码是纯C,所以我的EXE只依赖于
msvcr90.dll
。乍一看,我似乎可以不用
msvcp90.dll
msvcm90.dll


只分发
msvcr90.dll
(和
Microsoft.VC90.CRT.manifest
)可以吗?这样做有什么坏处吗?

您只需要部署您使用的东西,当您的程序从未实际加载DLL时,它不会出错。小心清单,它必须从默认清单中进行大量黑客攻击。如果您的程序只包含EXE,不使用其他DLL,则使用/MT构建您的程序,这样您就根本不需要这些DLL。并考虑更新你的VS版本,这些明显的头痛是古老的历史。@汉斯潘:“清单[…]必须被大大砍掉”——你的意思是我必须改变<代码>微软的内容吗?VC90.CRT。清单文件?以什么方式?
Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
Microsoft.VC90.CRT\msvcr90.dll
Microsoft.VC90.CRT\msvcp90.dll
Microsoft.VC90.CRT\msvcm90.dll