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


然后我尝试使用VS安装程序项目扩展。它创建了msi和安装文件,但是在我安装它之后,我找不到.exe文件并启动程序。我做错什么了?
带有项目文件的文件夹
带有exe文件的文件夹
发布于 2014-06-05 16:49:13
我解决了!
1)帮助运行.exe文件,帮助更新与exe文件相同目录下的.uld文件。
2)使用Dependency (http://www.dependencywalker.com/)查找所有需要的动态链接库。然后我创建一个安装项目使用向导在“选择文件包括”步骤,我添加每一个文件和每个库,它所依赖的!构建->安装->然后魔术,我的应用程序安装和运行!谢谢大家的帮助
发布于 2014-06-04 20:01:00
在为程序创建安装程序的阶段,您必须将程序所需的所有外部文件、库和资源放入程序的工作目录中,以便正确运行。当您通过Visual运行该程序时,一切都正常,因为它可以找到文件,因为正如您已经提到的,它们位于项目文件夹中,而项目文件夹是Visual查找它们的位置。
当您在VS之外启动程序时,程序无法找到这些文件,因为默认情况下,它试图在运行.exe文件所在的文件夹中找到这些文件。因此,如果您不想在VS之外运行程序,则需要将所需的所有文件放到..exe的目录中。
出于同样的原因,在创建安装程序时,您需要将安装目标目录中所需的所有文件与.exe一起包括在内。每个安装程序创建者都允许您这样做。
通常,如果您不能在任何IDE之外运行您的程序,并且可以在该IDE中运行它,那么您应该首先检查程序的工作目录中是否包含了所有必需的文件/库/dll/等。
https://stackoverflow.com/questions/24044919
复制相似问题