C#缺少MSVCR100.dll

时间:2011-08-05 13:05:33

标签: c# windows dll system32 msvcr100.dll

我正在开发一个执行其他应用的应用,但我收到了此错误:

  

程序无法启动,因为您的MSVCR100.dll丢失了   计算机

使用我的C#应用​​程序,我可以解决此问题将此.dll复制到windows / system32文件夹中吗? 或者存在另一种方法吗?

4 个答案:

答案 0 :(得分:30)

以下链接指向MSVCRT100安装程序的正确下载。这可能是您希望客户在安装应用之前运行的。这将正确地将MSVCRT DLL安装在正确的目录中,以便所有应用程序都可以使用它。

Microsoft Visual C++ 2010 Redistributable Package (x86)(可能是32位和64位操作系统所需要的)

Microsoft Visual C++ 2010 Redistributable Package (x64)(仅当您的应用本身为64位时)

如果您确实想通过自己的MSI中的合并模块安装MSVCRT100 DLL,您可以将MSI链接到位于x86版本中的MSM“c:\ program files \ common files \ merge modules”目录“(假设您已安装Visual Studio 2010)。

C:\Program Files (x86)\Common Files\Merge Modules>dir *CRT*.msm
 Volume in drive C has no label.
 Volume Serial Number is 60A4-1718

 Directory of C:\Program Files (x86)\Common Files\Merge Modules

04/22/2011  01:18 PM           584,192 Microsoft_VC100_CRT_x64.msm
04/22/2011  01:41 PM           571,904 Microsoft_VC100_CRT_x86.msm  <-- This is likely the MSM you want if your app is 32-bit.
04/22/2011  01:14 PM           847,360 Microsoft_VC100_DebugCRT_x64.msm
04/22/2011  01:39 PM           801,792 Microsoft_VC100_DebugCRT_x86.msm

另外两种选择: 而不是将MSVCRT100.dll复制到系统目录中,而是将其复制到您尝试启动的EXE应用程序的目录中,该应用程序依赖于此DLL。建议不要这样做,但不会冒破坏其他应用的风险。

另一种选择。如果您确实拥有要尝试启动的EXE的源代码,则可以通过静态链接来完全绕过所有这些“安装msvcrt100.dll”噪声。在visual studio中,它是项目在C / C ++(在代码生成选项卡下)的对话框中的选项。将“运行时库”从“多线程Dll”更改为“多线程”。这会添加/ MT编译器开关。

答案 1 :(得分:5)

无论您尝试启动什么程序,都必须先安装好。 Msvcr100.dll是需要为使用VS2010的C或C ++编写的程序部署的DLL之一。使用安装和部署项目或使用/ MT选项构建程序非常简单。联系程序所有者以获得支持。

答案 2 :(得分:2)

缺少的是Visual C ++运行时。

您是从C#代码启动C ++应用程序吗?如果是这样,请确保客户端计算机上有适当的运行时。

答案 3 :(得分:1)

您应该可以通过复制并注册它(使用命令行:regsvr32“DLLNAME”)来修复此问题,或者您可以将其与可执行文件一起发货,它应该可以正常工作

警告:在将文件包含在您的软件中之前,请参阅以下文章...... http://msdn.microsoft.com/en-us/library/ms235299.aspx

我对您的行为不承担任何责任