我开始使用WiX来执行自动构build来创build我的c#项目的msi,并且遇到错误“未定义的预处理器variables”$(var.MyProject.TargetDir)'“ 我正在使用最新的WiX v3.0.5419。 在我的wxs文件里,我试图使用这个网页上列出的预处理器variables( http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor- variables.aspx ) <Component Id="MyId" Guid="MyGuid"> <File Id="MyId" Name="MyName" KeyPath="yes" Source="$(var.MyProject.TargetDir)\MyName.dll" /> </Component> 我已经将MyProject的参考添加到.wixproj,如果我在记事本中打开它,我可以看到参考。 <ItemGroup> <ProjectReference Include="..\MyProject.csproj"> <Name>MyProject</Name> <Project>{guid}</Project> <Private>True</Private> </ProjectReference> </ItemGroup> 这是我用来创buildmsi的nant构build脚本。 也许是因为.wixproj知道在构build中没有使用的项目引用? <exec basedir="${tools.wix}" managed="true" program="candle.exe"> <arg line='-out "${tools.wix.objfile}"' /> <arg value="../MySetup.wxs" /> </exec> 任何人都可以启发我呢?