如何在不重建引用项目的情况下使用 wix 构建 msi?
How to build an msi using wix without rebuilding referenced projects?
我有一个创建 MSI 的 wixproj,并引用了 csproj。
这是在 teamcity 上构建的,有许多构建步骤:
- NuGet 安装
- 构建 csproj(默认目标)
- 运行 内置 .exe 上的签名工具
- 构建wixproj(默认目标)
- 运行 内置 .msi 上的签名工具
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.
但是由于我无法将该设置添加到所有构建步骤,所以这对我来说不是一个选项。
我有一个创建 MSI 的 wixproj,并引用了 csproj。 这是在 teamcity 上构建的,有许多构建步骤:
- NuGet 安装
- 构建 csproj(默认目标)
- 运行 内置 .exe 上的签名工具
- 构建wixproj(默认目标)
- 运行 内置 .msi 上的签名工具
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.
但是由于我无法将该设置添加到所有构建步骤,所以这对我来说不是一个选项。