C++ visual studio 2013部署项目

C++ visual studio 2013部署项目,c++,visual-studio-2013,C++,Visual Studio 2013,我已经疯了,我需要部署一个项目。我尝试使用InstallShield,它创建了一个msi文件,本地安装没有错误,但是当我尝试启动程序时,它输出了“调试错误”。在“我的设置”中,为多线程调试DLL(/MDd)设置代码生成器->运行库。如果我将其设置为多线程(/MT),它将不会编译:“请为_afxdlbuilds使用/MD开关” 然后我尝试使用VS Installer项目扩展。它创建msi和安装文件,但在我安装它之后,我找不到.exe文件并启动程序。我做错了什么 包含项目文件的文件夹 ![在此处

我已经疯了,我需要部署一个项目。我尝试使用InstallShield,它创建了一个msi文件,本地安装没有错误,但是当我尝试启动程序时,它输出了“调试错误”。在“我的设置”中,为多线程调试DLL(/MDd)设置代码生成器->运行库。如果我将其设置为多线程(/MT),它将不会编译:“请为_afxdlbuilds使用/MD开关”

然后我尝试使用VS Installer项目扩展。它创建msi和安装文件,但在我安装它之后,我找不到.exe文件并启动程序。我做错了什么

包含项目文件的文件夹 ![在此处输入图像描述][3]

包含exe文件的文件夹
![在此处输入图像描述][4]

在为您的程序创建安装程序的阶段,您必须将程序正确运行所需的所有外部文件、库和资源放在程序的工作目录中。当您通过VisualStudio运行程序时,一切正常,因为它可以找到文件,因为正如您所提到的,它们位于项目文件夹中,而项目文件夹正是VisualStudio查找它们的地方

当您在VS外部启动程序时,程序无法找到这些文件,因为默认情况下,它会尝试在运行.exe文件所在的文件夹中查找这些文件。所以,如果你不想在VS之外运行程序,你需要把所有需要的文件放到你的.exe目录下

出于同样的原因,在创建安装程序时,您需要将安装目标目录中所需的所有文件与.exe一起包括在内。每个安装程序创建者都允许您这样做

一般来说,如果您不能在任何IDE之外运行程序,并且可以在该IDE内运行,那么根据经验,您应该首先检查您的程序的工作目录中是否包含了所有必需的文件/库/dll/等。

我解决了它

1) 帮助运行.exe文件,帮助更新与exe文件位于同一目录中的.uld文件


2) 我使用Dependency Walker()查找它需要的所有dll。然后我在“选择要包含的文件”步骤中使用向导创建了一个安装项目,我添加了它所依赖的每个文件和每个库!Build->Install->Then magic,然后安装并运行我的应用程序!谢谢大家的帮助

您的程序是否使用了程序在运行时读取的任何外部配置文件或其他资源(如图像、文本文件等)?它们是否放置在IDE创建的项目文件夹中?是的,该文件夹包含所有外部文件。我发现了另一个问题。我无法在Visual Studio之外运行application.exe文件。它仅在使用本地Windows调试器以及每次加载符号时运行。我不知道如何找到head或tail。这很有意义,但我如何找到它需要的所有库?我在一篇文章中看到,您可以将代码生成器->运行库更改为多线程(/MT)。这对解决图书馆的问题很有帮助,但在我的情况下不起作用。我假设exe文件应该和它所需要的库紧密相连。我错了吗?!首先,如果您自己创建或复制了任何文件到项目文件夹中,即程序运行时打开并使用的任何.txt文件、图像、配置等,则您还必须将这些文件复制到exe目录中。当涉及到库时,如果您的特定库需要一些dll来运行,您可以通过谷歌搜索或签入文档(此外,如果您的程序缺少DLL,则错误消息很有可能会告诉您需要哪个DLL。因为这里不是这样,我怀疑您缺少了一些其他文件,而不是库,或者至少不仅仅是库)。在我运行或调试项目时没有错误!txt文件和图像位于同一文件夹中!