注意:如果您没有使用 .NET 框架,则可以在任何计算机上运行 C++ 程序而无需安装任何东西。在您的情况下,可能有两个原因会在目标计算机中触发错误。
- 新计算机不需要运行时汇编。
- 新计算机没有安装必需的 .NET 框架。
………………………………………………………………………………………………………………………………………………
那么该怎么办:
在开始您的程序之前,您必须设计天气是否要使用 .NET 框架支持。如果您在开发程序时使用.NET 框架,那么您在目标计算机上安装相同或更高版本的.NET 框架。
如果您不需要使用 .NET 组件,那么您的目标计算机应该只包含运行时程序集。如何摆脱 .net 框架
- 在解决方案中右键单击项目-> 属性-> 常规-> 通用语言运行时支持-> 选择“无通用语言运行时支持”。
………………………………………………………………………………………………………………………………………………
那么您需要的只是相关的运行时程序集在目标计算机中。
运行时程序集如何在新计算机中:
有两种方法:
在目标计算机上安装合适的 C++ 争议环境(如果你使用 VS2008 SP1,C++ RD 包应该是这个。请在下载前考虑解决方案构建架构(32 位/64 位))。
使用您的解决方案包部署运行时程序集。(我喜欢这个,因为用户不需要安装任何第三方组件)
………………………………………………………………………………………………………………………………………………
如何在我的项目中部署程序集:
为此,您的所有 DLL、LIB、EXE 都应使用相同的运行时版本。(如果没有,您将面临通过“清单”文件重定向程序集的麻烦)。
如何检查运行时版本。通过visual studio打开DLL、EXE(打开->文件)->展开RT_MANIFEST->双击其下的文件->然后程序集依赖细节将打开。-> 复制右栏中的数据并粘贴到记事本。
你会在那里看到这种线。还有你的特定 DLL 或 EXE 使用的版本运行时程序集。
assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86".....
在确定运行时程序集的版本后,请按照本教程并尝试在新安装的计算机上运行。
最后:如果你认为这个 bla.. bla.. 很复杂,你的程序很简单,那么你可以考虑“运行时程序集静态链接”(试试谷歌)。但我个人不喜欢这种方法。
祝你好运!