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

How to build an msi using wix without rebuilding referenced projects?

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

msi 已签名,但安装后,.exe 未签名。

对此进行调查,结果是 运行 msbuild 与 wixproj 上的默认目标重建了 exe,覆盖了已签名的。

我尝试更改 wixproj 构建步骤中的目标,但 "Candle" 未知,并且 "Compile" 错误为 "Undefined preprocessor variable '$(var.App.TargetPath)'"

我找到了解决方法,感谢 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.

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