【发布时间】:2018-10-23 06:12:05
【问题描述】:
我正在使用常规的 Visual Studio 安装项目来部署服务。 我需要在安装程序复制文件之前执行自定义操作。 AFAIS 所有自定义操作(源自 Installer ...)都在文件被复制后执行(这很明显,因为它们需要以某种方式执行)。
实际的问题是,安装程序会自行检查哪些文件正在使用并在复制之前停止服务(顺便说一句,安装程序停止应用程序的对话框告诉垃圾 - 但这是一个不同的问题)。基本上这是一个好主意。但是,在安装后,服务配置设置为在服务未运行时重新启动服务(服务控制管理器执行此工作)。此配置是一项要求,不能永久更改(只能临时更改)。稍后在升级安装过程中,这有时会与(升级-)安装过程发生冲突。因此,在升级安装的情况下,我想在将文件复制到目标文件夹之前将(旧)服务配置更改为不重新启动甚至卸载(旧)服务。否则,如果文件仍在使用中,复制文件有时会失败(因为旧服务再次运行(刚刚由服务控制管理器重新启动),如上所述)。长话短说,我需要在安装程序复制(新)文件之前执行一些代码。
这是一个相关的问题,但答案不符合我的问题: Take backup of target dir before files are copied into the target directory by msi Installer
【问题讨论】:
-
不错。这个问题在我发布后几分钟内就被否决了 3 次,没有提及原因。
标签: visual-studio installation setup-project vdproj