我已经开头了,我需要部署一个项目。我尝试使用InstallShield,它创建一个msi文件,本地安装没有错误,但是当我尝试启动程序时,它输出" debug error"。在我的设置代码生成器中 - >运行时库设置为多线程调试DLL(/ MDd)。如果我将它设置为多线程(/ MT)则无法编译:"请使用/ MD开关进行_AFXDLL构建"
然后我尝试使用VS Installer项目扩展。它创建了msi和安装文件,但在安装之后,我找不到.exe文件和启动程序。我做错了什么?
包含项目文件的文件夹 ![在此输入图像说明] [3]
带exe文件的文件夹 ![在此处输入图像说明] [4]
答案 0 :(得分:1)
在为程序创建安装程序的阶段,您必须在程序的工作目录中放置程序所需的所有外部文件,库和资源,以便正确运行。当您通过Visual Studio运行程序时,一切正常,因为它可以找到文件,因为正如您所提到的,它们位于项目文件夹中,项目文件夹是Visual Studio正在查找它们的位置。
当您在VS外部启动程序时,程序无法找到这些文件,因为它默认尝试将它们放在正在运行的.exe文件所在的文件夹中。因此,如果您不想在VS外部运行程序,则需要将所需的所有文件放在.exe的目录中。
出于同样的原因,在创建安装程序时,您需要将安装目标目录中所需的所有文件与.exe一起包含在内。每个安装程序创建者都允许您这样做。
一般情况下,如果您无法在任何IDE之外运行程序,并且可以在该IDE中运行它,那么您应首先检查是否已包含所有必需的文件/ libraries / dll / etc,这是一条经验法则。 。在你的程序的工作目录中。
答案 1 :(得分:0)
我解决了!!!!!!!!
1)帮助运行.exe文件,帮助将.uld文件更新到与exe文件相同的目录中。
2)我使用Dependency Walker(http://www.dependencywalker.com/)来查找它需要的所有dll。然后我在"选择文件中使用向导创建一个安装项目以包含"步骤我添加它依赖的每个文件和每个库!建设 - > Install->然后魔术,我的应用程序安装并运行!谢谢大家的帮助