c++ - visual studio 2013 部署一个项目

标签 c++ visual-studio-2013

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

enter image description here

enter image description here

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

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

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

最佳答案

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

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

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

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

关于c++ - visual studio 2013 部署一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044919/

相关文章:

javascript - 在 mvc5 中单击复选框时使下拉菜单可见

c++ - 将节点添加到链表的末尾

c++ - 投影和 View 矩阵

visual-studio-2013 - Visual Studio 2013 高 DPI 解决方法导致调试器失败

c - Visual Studio 2013 C 语法概述

sql-server - 将 Dacpacs 部署到锁定生产中的可用性组

c++ - 在函数中初始化,未在main中初始化

c++ - 如何从命令行编译和链接多个文件?

c++ - 在模板虚类层次结构中调用基类方法

c++ - 编辑并继续生成幻像错误