如何在不重建引用项目的情况下使用wix构建msi?

时间:2017-07-07 14:34:42

标签: wix teamcity wix3.11

我有一个创建MSI的wixproj,引用了csproj。 这是基于teamcity构建的,有许多构建步骤:

  • NuGet install
  • 构建csproj(默认目标)
  • 在内置的.exe上运行signtool
  • 构建wixproj(默认目标)
  • 在内置的.msi
  • 上运行signtool

msi被签名,但一旦安装,.exe就不会。

调查一下,事实证明在wixproj上使用默认目标运行msbuild会重建exe,覆盖签名的。

我尝试在wixproj构建步骤中更改目标,但“Candle”未知,并且“编译”错误输出“未定义的预处理器变量'$(var.App.TargetPath)'”

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方法,谢谢 Build MSBuild target without dependencies

在构建步骤中添加命令行选项/p:BuildProjectReferences=false解决了我的问题。

但是,构建日志现在提供此通知:

MSBuild command line parameters contain "/property:" or "/p:". It is recommended to define System Property on Build Parameters instead.

但由于我无法将该设置添加到所有构建步骤,因此对我来说这不是一个选项。