Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Visual Studio项目创建windows安装程序_Windows_Visual Studio 2008_Installation - Fatal编程技术网

为Visual Studio项目创建windows安装程序

为Visual Studio项目创建windows安装程序,windows,visual-studio-2008,installation,Windows,Visual Studio 2008,Installation,我想为我的项目创建一个安装程序,主要用于处理外部依赖项,这些依赖项的数量正在开始增长 问题是这些组件中的大多数似乎是以不同的方式分发的,所以我需要一个能够处理以下所有问题的安装程序。我看了各种各样的东西,但是很多似乎没有涵盖我需要的所有东西(比如如何使用VisualStudio安装项目安装directX…),或者甚至没有创建一个合适的windows安装程序(例如msi) 将所有我的应用程序文件复制到目标目录 创建开始菜单和桌面快捷方式 安装direct x(即调用dxsetup.exe/sil

我想为我的项目创建一个安装程序,主要用于处理外部依赖项,这些依赖项的数量正在开始增长

问题是这些组件中的大多数似乎是以不同的方式分发的,所以我需要一个能够处理以下所有问题的安装程序。我看了各种各样的东西,但是很多似乎没有涵盖我需要的所有东西(比如如何使用VisualStudio安装项目安装directX…),或者甚至没有创建一个合适的windows安装程序(例如msi)

  • 将所有我的应用程序文件复制到目标目录
  • 创建开始菜单和桌面快捷方式
  • 安装direct x(即调用dxsetup.exe/silent)
  • 安装VC9 CRT redist(似乎是一个查看msdn的“合并模块”,不管是什么…)
  • 仅当下列情况之一为真时才需要管理权限
    • DirectX和/或VC9 CRT尚未出现,或需要更新
    • 为所有用户安装
    • 安装到用户没有写入权限的目录
  • 如果安装在完成之前中止,则可以回滚所有内容
  • 生成卸载程序和安装程序
  • 确保用户接受所有必需的EULA(my one、VC9 Redist、DirectX等)
例如,我让VS2008 Setp项目为我的应用程序文件和VC9 CRT工作,但是我看不出有任何方法告诉它只运行带有/silent参数的dxsetup.exe,而不将它和所有其他dx安装程序解压缩到应用程序目录或其他什么

编辑:

另外,如果我能为x86和x86-64提供一个统一的安装程序,它将根据操作系统是否为64位安装正确的组件(例如myapp_x86.exe或myapp_x64.exe),那将非常好

编辑2:

忘了提一下,但也欢迎提供免费或低成本的解决方案,因为我也需要一些小型个人物品的解决方案。

正是您想要的。您需要通读v3文档和示例,因为这不是一件简单的事情。一旦你开始,你会有后续的问题,你应该发布新的问题

另请参见WiX,但请记住它指的是v2,而且很多在v3中已经过时或过时了。

如果您负担得起,这些都能很好地专业地完成。它将包括合并文件并无缝安装。Installshield有其独特之处,但它非常易于使用,而且非常健壮。一旦你编写了你的应用程序,你就不会想太多关于安装程序的事情了

我喜欢一些漂亮的特征

  • 通过区分源代码创建修补程序安装,以便您可以以较小的大小分发修补程序
  • 创建更新应用程序注册表和版本号的升级。防止安装旧版本
  • 创建一个很好的卸载程序
  • 添加合并模块很容易
  • 如果需要,可以编写脚本;如果不需要,可以编写GUI(大多数情况下,不需要编写脚本)

如果你负担不起,那就去吧。它功能强大,使用方便,但可以在文本编辑器中编写代码。

听起来不像fanboi,但installshield可以在单个项目中处理64位和32位安装(它们输出到单独的目录)