我正在为我的Visual Studio解决方案收集目录。

到目前为止,它可以在我的本地系统上运行,可能是因为遵守了项目构建顺序。

当我在构建服务器上运行安装程序时,它会找到正确的目录,但在构建安装文件时尚未创建该目录。抛出HEAT5052错误,指示The directory 'a:\b\c' could not be found

建立所有项目引用之后,是否有任何方法可以“等待”直到执行热命令?

最佳答案

好的,所以我花了数小时来弄清楚所有引用被重新设置后如何触发Heat。我仅使用<PreBuildEvent>命令行以及<PostBuildEvent>Heat目标找到了BeforeBuildAfterBuild的解决方案。

因此,我在自己的wix2010.targets文件中找到了所有类型的目标Program files (x86)\MSBuild\Microsoft\Wix\文件夹。它包含一个名为AfterResolveReferences的目标,并且确实做到了这一点。所以这是我的代码,我最终得到了(以防有人感兴趣):

<Target Name="AfterResolveReferences">
    <HeatDirectory
        ToolPath="$(WixToolPath)"
        OutputFile="Product.Binaries.wxs"
        SuppressFragments="$(HarvestDirectorySuppressFragments)"
        Transforms="Filter.xslt"
        Directory="$(HarvestFolder)"
        DirectoryRefId="MY_FOLDER"
        ComponentGroupName="Binaries"
        GenerateGuidsNow="true"
        SuppressRootDirectory="true"
        SuppressRegistry="true"
        PreprocessorVariable="var.App.TargetDir">
    </HeatDirectory>
</Target>

关于msbuild - WiX Heat : Pre-build event fires too early on build server,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34282907/

10-17 02:34