Я использую _PublishedApplications для создания структуры на сервере сборки TFS. После этого я использую <HeatDirectory>
в проекте WiX, чтобы правильно собрать содержимое папки _PublishedApplications. Но моя проблема - это порядок во время сборки.Как заказать сбор данных перед сборкой?
Если я использую <HeatDirectory>
внутри <Target Name="BeforeBuild">
, он не содержит двоичные файлы, скопированные в _PublishedApplications, поскольку сбор урожая выполняется перед публикацией (копия файла).
Если я изменю цель на BeforeCompile
, компиляция не будет успешной, потому что на первом месте нет файла. Вот код для проекта WiX (соответствующая часть):
<ItemGroup>
<Compile Include="Product.wxs" />
<Compile Include="Autogenerated.wxs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SimpleProject\SimpleProject.csproj">
<Name>SimpleProject</Name>
<Project>{GUID}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<Target Name="BeforeCompile">
<HeatDirectory OutputFile="Autogenerated.wxs" Directory="$(Sources)"
PreprocessorVariable="var.SimpleProject.TargetDir"
AutogenerateGuids="true" SuppressRegistry="true"
ToolPath="$(WixToolPath)" DirectoryRefId="INSTALLFOLDER"
ComponentGroupName="ComponentGroup_Core"
SuppressRootDirectory="true" />
</Target>
Вопрос
Как я могу выполнить уборку после того, как двоичные файлы копируются в _PublishedApplications?
Вы не должны редактировать файл решения напрямую. В VS есть возможность сделать это. Прочитайте обновление в своем ответе. – Rolo
Даже если вы измените заказ сборки проекта, при выполнении сборки первая цель - это первый проект в файле. Затем вызывается BeforeBuild для этого первого проекта. Только после вызова функции BeforeBuild вызывается ResolveProjectReferences, поэтому даже если вы измените порядок сборки, добавив ссылки на проект, в этом конкретном случае это не сработает. – Marlos
У меня есть файл решения (VS 2013u5 - 12.0.40629.0), где .wixproj определяется последним (из проекта refs) в файле, но я все еще наблюдаю за тем, как вызывается передняя задача PreBuild для .wixproj создаются зависимые проекты. –