Относительно ответа, приведенного по этой ссылке: Предлагаемое решение
Я пытался использовать этот метод несколькими способами, но мне не удалось заставить его работать.Я дважды проверил, что я использую версию msbuild для фреймворка 4, и я тщательно следовал инструкциям.
Мое свойство WixValues выглядит такЗначение defineconstant не попадает в командную строку, даже если все остальные значения находятся в порядке.
The candle command line from the msbuild log looks like this:
..\WixTools\candle.exe -sw -TXT=TRUE -d"DevEnvDir=*Undefined if not building from within Visual Studio*" -d"SolutionDir=*Undefined if not building a solution or within Visual Studio*" -d"SolutionExt=*Undefined if not building a solution or within Visual Studio*" -d"SolutionFileName=*Undefined if not building a solution or within Visual Studio*" -d"SolutionName=*Undefined if not building a solution or within Visual Studio*" -d"SolutionPath=*Undefined if not building a solution or within Visual Studio*" -dConfiguration=Release -dOutDir=bin\x64\Release\ -dPlatform=x64 -dProjectDir=C:\Builds\Viper06\InstallSE64wix\ -dProjectExt=.wixproj -dProjectFileName=InstallSE64wix.wixproj -dProjectName=InstallSE64wix -dProjectPath=C:\Builds\Viper06\InstallSE64wix\InstallSE64wix.wixproj -dTargetDir=C:\Builds\Viper06\InstallSE64wix\bin\x64\Release\ -dTargetExt=.msi -dTargetFileName=InstallSE64wix.msi -dTargetName=InstallSE64wix -dTargetPath=C:\Builds\Viper06\InstallSE64wix\bin\x64\Release\InstallSE64wix.msi -out obj
Задача MSBuild выглядит так
<MSBuild
Projects="$(SvnWorkingCopy)\InstallSE64wix\InstallSE64wix.wixproj"
Targets="Rebuild"
Properties="$([MSBuild]::Unescape($(WixValues)))"
/>
Вот запись файла проекта
<DefineConstants>$([MSBuild]::Unescape($(WixValues)))</DefineConstants>
Буду признателен за любую помощь Рори или кого-либо еще, кто получил это на работу.
Спасибо