我正在开发一个执行其他应用的应用,但我收到了此错误:
程序无法启动,因为您的MSVCR100.dll丢失了 计算机
使用我的C#应用程序,我可以解决此问题将此.dll复制到windows / system32文件夹中吗? 或者存在另一种方法吗?
答案 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
我对您的行为不承担任何责任