Visual studio 要发布哪些运行库?

Visual studio 要发布哪些运行库?,visual-studio,visual-studio-2008,Visual Studio,Visual Studio 2008,我使用VisualStudio2008在C/C++上工作。我相信我不关心我的代码正在使用哪些运行时库,因为我有开发人员设置。但是,当可执行文件发布时,所使用的运行库需要随附。我说得对吗 如果是,我如何确定哪些共享库实际被使用?或者,我们是否可以在不需要知道这些信息的情况下提供任何库?查看生成的文件,以查看需要随附的CRT版本。可以更改您链接到的CRT版本(如图所示),但似乎不推荐使用。您需要随附dll文件 您可以猜测其中的大部分,对于其余部分,您可以使用“Dependency Walker”程序

我使用VisualStudio2008在C/C++上工作。我相信我不关心我的代码正在使用哪些运行时库,因为我有开发人员设置。但是,当可执行文件发布时,所使用的运行库需要随附。我说得对吗


如果是,我如何确定哪些共享库实际被使用?或者,我们是否可以在不需要知道这些信息的情况下提供任何库?

查看生成的文件,以查看需要随附的CRT版本。可以更改您链接到的CRT版本(如图所示),但似乎不推荐使用。

您需要随附dll文件


您可以猜测其中的大部分,对于其余部分,您可以使用“Dependency Walker”程序来显示可执行文件的依赖关系。

如果您是正确的,您需要提供一个与您链接应用程序所针对的版本相匹配的C运行时库版本。如果使用Visual Studio 2008进行编译,则需要使用。正如其他人提到的,您可以检查应用程序的清单文件,以查看它所链接的C运行时库的确切版本


发货前,最好将产品安装在干净的机器上(即非开发人员)虚拟机并运行以验证应用程序是否使用了正确的C运行时库。

我听说,自从MS引入并排程序集以来,依赖项遍历程序无法正常工作。它已更新,以便更好地处理并排程序集。请看我答案中的链接。我认为这里的关键词是“更好”,你仍然不能指望从中获得准确的信息。最好使用清单文件。我不知道你说的不能依赖它获取“确切信息”是什么意思。它显示嵌入清单文件中包含的信息。谢谢Andreas。这很有帮助。我得到了一台没有安装Visual Studio的测试机,我从清单和依赖项Walker中看到,它依赖于Microsoft.VC90.CRT,特别是MSVCP90.dll、MSVCR90.dll.Contd。。我的应用程序是在Tomcat中运行的Java应用程序。它使用了在Apache Tomcat/BIN/Bu建/DLL中存在的C++ DLL。我将所有MSVC**DLL以及清单文件复制到这个文件夹中,随后复制到bin文件夹中,然后复制到apache tomcat文件夹下。但应用程序运行时仍会显示依赖项错误。设置Path环境变量也没有帮助。我做这一切的想法是,如果我将CRT DLL粘贴到工作目录中,依赖关系应该被删除。你能提出一些建议吗?你不应该把文件复制到应用程序的目录中;您应该安装适当的C运行时,以便该计算机上的所有应用程序都可以使用它。使用我在回答中提供的链接安装适当的运行库。