【发布时间】:2016-10-12 20:53:32
【问题描述】:
背景
我有一个 Jenkins 进程,我在其中构建一个 Windows 服务,然后使用 MSBuild 从 WiX 项目编译一个 .msi。服务本身会根据其运行的配置进行不同的处理,此配置由通过 app.config 分配给服务的编号确定。因此,例如,FooService1 处理某些记录,FooService2 处理其他记录等。不同的版本运行完全相同的编译 dll,唯一的区别是 app.config 中分配的服务器编号。
我将在同一台机器上运行同一服务的这些不同版本,并希望通过 Jenkins 自动化服务的不同变体的构建过程。我正在使用 powershell 脚本在 app.config 中分配服务编号,然后通过 MSBuild 传入该服务编号并使用 WiX 变量来修改 Windows 服务的名称和服务运行所在的文件夹的名称.
问题/问题
所以 .wixproj 的第一个 MSBuild 运行良好。但是接下来的 MSBuild 报告它是
跳过目标“编译”,因为所有输出文件相对于输入文件都是最新的
有没有办法“伪造”MSBuild 认为它应该再次编译 .wixproj?我的最终目标是,如果我想要 3 个版本的服务,Jenkins 将编译一次解决方案,然后构建 WiX 项目 3 次,生成包含 FooService1.msi、FooService2.msi 和 FooService3.msi 的 /bin。每个安装程序都将包含相同的 dll,但 app.config 会有所不同。
【问题讨论】: