我正在开发一个执行另一个应用程序的应用程序,我收到了以下错误:
程序无法启动,因为您的计算机缺少MSVCR100.dll
用我的C#应用程序,我能修复将这个.dll复制到windows/system32 32文件夹中的问题吗?或者存在另一种方法来做这件事?
发布于 2011-08-05 23:36:37
下面的链接指向MSVCRT100安装程序的正确下载。这可能是你希望你的客户在安装你的应用程序之前运行的。这将正确地将MSVCRT安装在适当的目录中,以便所有应用程序都可以使用它。
Microsoft Visual C++ 2010 Redistributable Package (x86) (可能是32位和64位操作系统所需要的)
Microsoft Visual C++ 2010 Redistributable Package (x64) (仅当应用程序本身为64位时)
如果您实际上希望通过您自己的MSI中的合并模块安装MSVCRT100 DLLs -您可以将您的MSI链接到位于x86版本中的MSM,您的"c:\program \公用文件\合并模块“目录(假设您安装了Visual 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复制到系统目录中,而是将其复制到您试图启动的依赖于这个DLL的EXE应用程序的目录中。这是不推荐的,但不会冒破坏其他应用程序的风险。
另一种选择。如果您实际上拥有要启动的EXE的源代码,那么只需静态地链接到它,就可以完全绕过所有这些“installmsvcrt100.dll”噪声。在visual中,它是C/C++ (代码生成选项卡)下项目属性对话框中的选项。将“运行时库”从“多线程Dll”更改为“多线程”。这将添加/MT编译器开关。
发布于 2011-08-05 13:09:16
不管你想启动什么程序,都必须先正确安装。Msvcr100.dll是需要为用C或C++编写的带有VS2010的程序部署的DLL之一。对于安装和部署项目,或者通过使用/MT选项构建程序,这很简单。请与程序所有者联系以获得支持。
发布于 2011-08-05 13:07:41
缺少的是VisualC++运行时。
您是否从您的C++代码启动C#应用程序?如果是这样的话,请确保客户机上有合适的运行时可用。
https://stackoverflow.com/questions/6956747
复制相似问题