Welcome, Guest
Username Password: Remember me
  • Page:
  • 1

TOPIC: heat.exe

heat.exe 2 years, 4 months ago #1097

  • InstallerGeek
Hi,
I have some problems to migrate from WIX 3.0.4707 to WIX 3.0.5419 because the arguments of HEAT.EXE changed.
usage:  heat.exe harvestType harvestSource <harvester arguments> -o[ut] sourceFile.wxs What is meant with the new argument harvestSource?
The old command looks like this:
"C:\Program Files\Windows Installer XML v3\bin\heat.exe" dir  "..\..\~tmp\j2build3v_win\apps" -gg -sfrag -scom -sreg "$(ProjectDir)..\..\..\~tmp\j2build3v_win\apps\eu" -out "$(ProjectDir)gen_fragment.wxs" -template:fragment How can I convert it to the new implemtation of HEAT?

Re: heat.exe 2 years, 4 months ago #1098

  • InstallerExpert
Hi,
I have some problems to migrate from WIX 3.0.4707 to WIX 3.0.5419 because the arguments of HEAT.EXE changed.
usage:  heat.exe harvestType harvestSource <harvester arguments> -o[ut] sourceFile.wxs What is meant with the new argument harvestSource?
The old command looks like this:
"C:\Program Files\Windows Installer XML v3\bin\heat.exe" dir  "..\..\~tmp\j2build3v_win\apps" -gg -sfrag -scom -sreg "$(ProjectDir)..\..\..\~tmp\j2build3v_win\apps\eu" -out "$(ProjectDir)gen_fragment.wxs" -template:fragment How can I convert it to the new implemtation of HEAT?

Re: heat.exe 2 years, 4 months ago #1099

  • InstallerExpert
I am in the midst of upgrading our product to be VS 2010 compatible. We&#039;re using WIX to generate a .msi installer. I&#039;ve upgraded to WIX 3.5.1309.0 and have run into a snag.

Specifically I&#039;m having a problem with the HEAT tool in this version. It is having trouble working with our VS2010 converted .csproj files. Votive wants to automatically run this command line:

C:\Program Files\Windows Installer XML v3.5\bin\Heat.exe project "..\..\Common\ArtOfTest.Common.Design\ArtOfTest.Common.Design\ArtOfTest.Common.Design.csproj" -pog:Binaries -pog:Symbols -pog:Sources -pog:Content -pog:Satellites -pog:Documents -ag -sfrag -out obj\Release\_ArtOfTest.Common.Design.wxs

If I manually run this at the command line and point it to the working VS2008 .csproj file I get the expected output file just fine. But if I point it to the converted VS2010 .csproj file (which does compile and generates a .dll in VS2010 no problem), nothing gets output. There&#039;s no error message of any kind either. I tried adding the -verbose switch and that didn&#039;t add any output either. Absolutely nothing comes out (no generated output, no error message of any kind, etc.). Nothing is put in the Event Viewer/Application log either. I am stumped as to why I am not getting any output.

Is there any more information I can give to help? Here is the contents of one of my converted .csproj files (trimmed slightly to hide most of our source code file names):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" &#039;$(Configuration)&#039; == &#039;&#039; ">Debug</Configuration>
    <Platform Condition=" &#039;$(Platform)&#039; == &#039;&#039; ">AnyCPU</Platform>
    <ProductVersion>9.0.30729</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{13C244B1-E0E7-41FD-9118-D2CD8A567102}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>ArtOfTest.Common.Design</RootNamespace>
    <AssemblyName>ArtOfTest.Common.Design</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <SccProjectName>
    </SccProjectName>
    <SccLocalPath>
    </SccLocalPath>
    <SccAuxPath>
    </SccAuxPath>
    <SccProvider>
    </SccProvider>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>ArtOfTest.Common.Design.snk</AssemblyOriginatorKeyFile>
    <ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <OldToolsVersion>3.5</OldToolsVersion>
    <UpgradeBackupLocation />
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>
  <PropertyGroup Condition=" &#039;$(Configuration)|$(Platform)&#039; == &#039;Debug|AnyCPU&#039; ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" &#039;$(Configuration)|$(Platform)&#039; == &#039;Release|AnyCPU&#039; ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="ArtOfTest.Common, Version=2.0.8.0, Culture=neutral, PublicKeyToken=14a0200bfcbb7b62, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\..\..\..\..\..\..\Windows\assembly\GAC_MSIL\ArtOfTest.Common\2.0.8.0__14a0200bfcbb7b62\ArtOfTest.Common.dll</HintPath>
    </Reference>
    <Reference Include="PresentationCore">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="PresentationFramework">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="PresentationFramework.Aero">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Drawing" />
    <Reference Include="System.Runtime.Serialization">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.ServiceModel">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml.Linq">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Data.DataSetExtensions">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="UIAutomationProvider">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
    <Reference Include="WindowsBase">
      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Data\CustomizableDataTable.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="ProjectModel\__enums.cs" />
    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Include="StringUtils.cs" />
    <Compile Include="Translation\IdentificationDescriptorList.cs" />
    <Compile Include="UI\General\GetString.Designer.cs">
      <DependentUpon>GetString.cs</DependentUpon>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
    <EmbeddedResource Include="UI\General\GetString.resx">
      <DependentUpon>GetString.cs</DependentUpon>
    </EmbeddedResource>
    <EmbeddedResource Include="UI\TypeEditors\DataDrivenPropertyEditorControl.resx">
      <DependentUpon>DataDrivenPropertyEditorControl.cs</DependentUpon>
      <SubType>Designer</SubType>
    </EmbeddedResource>
  </ItemGroup>
  <ItemGroup>
    <None Include="ArtOfTest.Common.Design.snk" />
  </ItemGroup>
  <ItemGroup>
    <Page Include="UI\FindExpression\FindClauseEditor.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="UI\FindExpression\FindExpressionEditor.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="UI\Sentence\SentencePreviewList.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <Resource Include="Resources\Delete.png" />
    <Resource Include="Resources\DomExplorer.png" />
    <Resource Include="Resources\Fail.png" />
    <Resource Include="Resources\ParamArrowDown.png" />
    <Resource Include="Resources\Pass.png" />
    <Resource Include="Resources\Validate.png" />
  </ItemGroup>
  <ItemGroup>
    <Resource Include="Resources\AND.png" />
    <Resource Include="Resources\button_accept.png" />
    <Resource Include="Resources\icon_checkmark.off.png" />
    <Resource Include="Resources\icon_checkmark.on.png" />
    <Resource Include="Resources\icon_dropArrow.hover.png" />
    <Resource Include="Resources\icon_dropArrow.opened.png" />
    <Resource Include="Resources\icon_dropArrow.png" />
    <Resource Include="Resources\icon_editPencil.png" />
    <Resource Include="Resources\icon_locateDOM.on.png" />
    <Resource Include="Resources\icon_locateDOM.png" />
    <Resource Include="Resources\icon_resizer.png" />
    <Resource Include="Resources\icon_verify.on.png" />
    <Resource Include="Resources\icon_verify.png" />
    <Resource Include="Resources\THEN.png" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Resources\datadriveneditor.png" />
    <Page Include="UI\Sentence\SentenceParamUI3D.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="UI\Sentence\SentenceUI3D.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="UI\Sentence\VerificationBuilderResources.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.VisualBasic.PowerPacks.10.0">
      <Visible>False</Visible>
      <ProductName>Microsoft Visual Basic PowerPacks 10.0</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
      <Visible>False</Visible>
      <ProductName>Windows Installer 3.1</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
      Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
  <PropertyGroup>
    <PostBuildEvent>if $(ConfigurationName)==Debug "C:\Program Files\Microsoft SDKs\Windows\v6.0a\bin\gacutil.exe" /i $(TargetPath)</PostBuildEvent>
  </PropertyGroup>
</Project>

Re: heat.exe 2 years, 4 months ago #1100

  • InstallerGeek
I&#039;ve found HEAT doesn&#039;t generate any output even for a brand new empty VS2010 C# class library project. Here is what the output window contains when I try to build a simple installer containing only the brand new empty VS2010 C# class library project:

Re: heat.exe 2 years, 4 months ago #1101

  • InstallerExpert
I see two directories listed below. You should only have one.

"C:\Program Files\Windows Installer XML v3\bin\heat.exe" dir  "..\..\~tmp\j2build3v_win\apps" -gg -sfrag -scom -sreg "$(ProjectDir)..\..\..\~tmp\j2build3v_win\apps\eu" -out "$(ProjectDir)gen_fragment.wxs" -template:fragment

Should be:
"C:\Program Files\Windows Installer XML v3\bin\heat.exe" dir  "..\..\~tmp\j2build3v_win\apps" -gg -sfrag -scom -sreg -out "$(ProjectDir)gen_fragment.wxs" -template:fragment

OR:

"C:\Program Files\Windows Installer XML v3\bin\heat.exe" dir "$(ProjectDir)..\..\..\~tmp\j2build3v_win\apps\eu" -gg -sfrag -scom -sreg -out "$(ProjectDir)gen_fragment.wxs" -template:fragment

Re: heat.exe 2 years, 4 months ago #1102

  • InstallerGeek
Is there a particular reason why Heat.exe is targeted and compiled specifically against the x86 architecture? I have seen a couple of questions about this around on the Internet but no firm answer or resolution. I briefly looked over the Heat code (v3.0.5419.0) and there does not seem to be anything specific that jumps out as being 64-bit incompatible. Then again, it was more a cursory glance than a walkthrough.

I am currently migrating our build and development environments to 64-bit. In this process, I&#039;d also like to migrate our current setup projects to MSBuild using the WiX targets and the HeatProject task. I may try my hand at compiling the Heat project for 64-bit process architectures if that&#039;s what it comes down to. Any help before it gets ugly would be much appreciated!

By the way, using a 64-bit version of MSBuild yields the expected BadImageFormatException from heat.exe.

Re: heat.exe 2 years, 4 months ago #1103

  • InstallerExpert
On 1/13/2010 8:07 PM, Navid Azimi-Garakani wrote:
> Is there a particular reason why Heat.exe is targeted and compiled specifically against the x86 architecture?

Because an MSIL .exe runs as a 64-bit process on an x64 system, so it couldn&#039;t load x86 DLLs. I suspect there&#039;s a need for Heat64.

> I may try my hand at compiling the Heat project for 64-bit process architectures if that&#039;s what it comes down to. Any help before it gets ugly would be much appreciated!
>   

Should be pretty straightforward, just get an enlistment.

Re: heat.exe 2 years, 4 months ago #1104

  • InstallerGeek
Not sure if it is that straight forward. I think the reason we keep punting this feature is the dependencies heat.exe has on the Wix core project (
sourceforge.net/tracker/index.php?func=d...5970&atid=642717
).
  • Page:
  • 1
Time to create page: 0.91 seconds

     
    
Home Forum