我需要什么C ++程序包才能运行程序?

| 我创建了一个使用C ++ dll的C#应用​​程序,并尝试创建一个安装包,该安装包将使其在具有VS或不具有VS的其他计算机上运行,​​问题是我不知道我需要让哪个C ++库运行它做到这一点。当我仅在空白虚拟机上运行应用程序时,它说 \“ xxxx遇到问题,需要关闭。” 如果我去下载Visual Studio 2008 Express版本并将其安装在计算机上,则我的程序可以正常运行。问题是在机器上下载的是85-185mb的下载,最大1.1gb的是335mb,正在使用它的程序只有33kb。那里巨大的开销... 如果我仅安装从msdn站点可再发行的C ++,则占用4mb,但不会让我运行程序。 我需要什么C ++软件包才能使此程序在空白计算机上运行?     
已邀请:
这个问题很难回答。如果您拥有c ++ dll的源代码,那么您应该能够查看其依赖关系,除非该人使用了大量com或加载库调用。我用来获取c ++山脉信息的最好的工具之一是depends.exe。检查其代码是否是您要使用的调试版本是否与依赖于我认为不在可再发行的调试dll的依赖关系的一件事。     
caleb,我建议您使用一个名为Dependency Walker的程序。它将显示您具有的所有dll依赖项。我敢肯定,其中有很多Windows版本,但那是我使用了一段时间了,我很喜欢。因此,您通过从MS网站下载可再发行软件包进行了正确的操作,但您的应用程序可能依赖于其他一些库。很久以前,当我尝试使用Visual Studio来构建安装程序时,我记得这是在安装程序中包含可重新分发程序包或使用并行安装的一种方法,具体取决于Visual Studio版本的许可协议是否允许您执行那还是不。另外,您可以包括安装程序中所有的dll依赖项。 希望能有所帮助     
您需要的C ++运行时dll是作为可再发行组件包随编译器提供的,而恰恰是这个!其他Redist软件包将不需要工作,因为嵌入在可执行文件中的清单需要精确的版本(由并排汇编目录C:\\ Windows \\ SxS中二进制文件的哈希值检查) 因此,您可以正确地使用可再发行组件,但您需要的是与编译器一起安装的组件,而不是互联网上的最佳猜测之一。确切的版本可以在清单文件(XML)中查看     

要回复问题请先登录注册