C# 缺少 MSVCR100.dll

标签 c# windows dll system32 msvcr100.dll

我正在开发一个执行另一个应用程序的应用程序,但我收到了这个错误:

the program can't start because MSVCR100.dll is missing from your computer

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

最佳答案

下面的链接指向 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 复制到系统目录中,而是将其复制到您尝试启动的依赖于此 DLL 的 EXE 应用程序的目录中。不推荐这样做,但不会有破坏其他应用程序的风险。

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

关于C# 缺少 MSVCR100.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6956747/

相关文章:

windows - 如何让我的 Windows 窗体应用程序最小化到系统任务栏?

windows - 导航页面时 xaml 中的 InvalidCastException

c# - 将多个 .NET 二进制文件合并在一起?

c# - 在 C# 中使用 C++ dll

dll - 使用 MinGw 在 Windows 上构建 Mlt 时出错。 undefined reference dlsym dlclose dlopen dlerror dlclose

c# - MongoDB 组合键 : InvalidOperationException: {document}. 不支持身份

c# - PrincipalContext & UserPrincipal 如何知道密码何时过期?

.net - 在辅助显示器上全屏显示

c# - 为什么我的 CRM 插件中的所有引用属性都为空?

c# - C#中位图getbrightness()算法