4

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

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

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

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

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

4

1 回答 1

1

由于 没有依赖项的构建 MSBuild 目标,我找到了解决方法

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

但是,构建日志现在给出了这个通知:

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

但由于我无法将该设置添加到所有构建步骤中,因此这不是我的选择。

于 2017-07-10T10:25:03.937 回答