2017-07-07 278 views
1

我有一個wixproj創建一個MSI,引用一個csproj。 這是正在興建的TeamCity,擁有多項構建步驟:如何在不重建引用項目的情況下使用wix構建msi?

  • 的NuGet安裝
  • 構建的csproj(默認目標)
  • 運行signtool上內置的.exe
  • 構建wixproj(默認目標)
  • 上運行signtool內置的.msi

微星得到簽名,但一旦安裝,該.exe是沒有的。

調查了這一點,事實證明,運行帶有wixproj默認目標的msbuild會重新構建exe文件,覆蓋已簽名的文件。

我試圖改變在wixproj構建步驟的目標,但「蠟燭」是未知的,「編譯」與「未定義的預處理器變量‘$(var.App.TargetPath)’」

+0

你如何運行signtool來簽署構建的exe文件?你可以把這個exe的簽名作爲一個setp在「AfterBuild」目標中嗎? –

+0

我有一個運行'%SdkPath%\ signtool sign/a%WorkDir%\%Project%\ bin \%Configuration%\%Executable%'' 的構建步驟我寧願避免將它放在項目文件中,因爲它只與構建服務器有關,而不是在開發機器上。 –

回答

0

我發現的錯誤出爲此感謝的解決方法, 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.

但正如我不能添加設置了所有構建步驟,這不是我的選擇。

相關問題