我想执行一个用VC ++ .net 2008编写的exe文件,该文件有一个windows xp并且没有.net框架且没有c ++库的计算机。 但是当我运行该文件时,我收到此错误:
This application has failed to start because the application configuration is incorrect....
我想要一种方法将所有依赖关系放在一起,以摆脱这个问题。 有谁知道我该怎么办?
答案 0 :(得分:2)
如果您正在编写纯C ++应用程序(仅限Win32,没有.NET),那么您希望静态链接C ++运行时,该运行时可以在项目的属性中更改。有关说明,请参阅this answer。 (适用于VC2005,但VC2008中的步骤相同)
答案 1 :(得分:1)
您似乎在寻找.Net链接器,例如this one。
答案 2 :(得分:0)
您有两个基本选择:使用纯C ++编写程序(或者可以/将会产生完全独立的可执行文件的其他语言),或者使用依赖性walker来查找所需的DLL,并将它们打包成一个安装程序。
您建议的选项(采用依赖于某些DLLS的现有可执行文件,并尝试将DLL“注入”可执行文件)几乎是行不通的。理论上,您可以(例如)将安装程序创建为可执行文件,并让用户每次想要运行程序时重新运行安装程序。这通常会增加您的用户可能不喜欢的开销。
同样,您可以将DLL作为二进制资源放入可执行文件中,并使用FindResource
,LoadResource
等将其内容写入临时文件 - 但这需要一些半 - 先进的编程,它仍然会产生相当大的开销。