As you already remarked, your nant build script is not using the wixproj file at all.
You are mixing two different ways to build a wix setup here:
-
You can use the
candle.exeandlight.execommand line tools directly. This ignores the.wixprojfile. This is what you are doing in your nant build script. To pass values for preprocessor variables like$(var.MyProject.TargetDir), use options like-dMyProject.TargetDir=c:\foo. -
You can author a .wixproj file with votive (the visual studio add-on for wix). Like all visual studio project files, a wixproj file is actually a msbuild file which can be build with
msbuild.exe. Variables like$(var.MyProject.TargetDir)are automatically set by the msbuild tasks for building wix setups if the correct project reference exists.
I recommend you build the wixproj file with the <msbuild> nant task. This ensures that your nant build does the same as when you build the setup manually from visual studio.