Add heat.exe
Sean Hall committed
May 22, 2020 at 20:09 UTC
929f43b2d48f9d35803064774e357c7a2cf76713
6 files changed
+133
-2
Tools.sln
+12
-2
@@ -1,7 +1,7 @@
1
2
Microsoft Visual Studio Solution File, Format Version 12.00
3
-# Visual Studio 15
4
-VisualStudioVersion = 15.0.26124.0
3
+# Visual Studio Version 16
4
+VisualStudioVersion = 16.0.30011.22
5
MinimumVisualStudioVersion = 15.0.26124.0
6
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.BuildTasks", "src\test\WixToolsetTest.BuildTasks\WixToolsetTest.BuildTasks.csproj", "{4B0098A4-B581-4D04-BA1E-6DC2370A7D43}"
7
EndProject
@@ -26,6 +26,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.WixCop", "sr
26
EndProject
27
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "thmviewer", "src\thmviewer\thmviewer.vcxproj", "{95228C13-97F5-484A-B4A2-ECF4618B0881}"
28
EndProject
29
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "heat", "src\heat\heat.csproj", "{B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}"
30
+EndProject
31
Global
32
GlobalSection(SolutionConfigurationPlatforms) = preSolution
33
Debug|Any CPU = Debug|Any CPU
@@ -104,6 +106,14 @@ Global
106
{95228C13-97F5-484A-B4A2-ECF4618B0881}.Release|Any CPU.ActiveCfg = Release|Win32
107
{95228C13-97F5-484A-B4A2-ECF4618B0881}.Release|x86.ActiveCfg = Release|Win32
108
{95228C13-97F5-484A-B4A2-ECF4618B0881}.Release|x86.Build.0 = Release|Win32
109
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
110
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
111
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Debug|x86.ActiveCfg = Debug|Any CPU
112
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Debug|x86.Build.0 = Debug|Any CPU
113
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
114
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Release|Any CPU.Build.0 = Release|Any CPU
115
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Release|x86.ActiveCfg = Release|Any CPU
116
+ {B1F18B6F-FBD8-4911-B3BF-40D801DA77D7}.Release|x86.Build.0 = Release|Any CPU
117
EndGlobalSection
118
GlobalSection(SolutionProperties) = preSolution
119
HideSolutionNode = FALSE
appveyor.cmd
+3
@@ -8,6 +8,9 @@ dotnet test -c Release src\test\WixToolsetTest.BuildTasks
8
dotnet test -c Release src\test\WixToolsetTest.WixCop
9
10
dotnet publish -c Release -o %_P%\dotnet-wix\ -f netcoreapp2.1 src\wix
11
+@rem dotnet publish -c Release -o %_P%\netfx-heat\ -f net461 src\heat
12
+@rem dotnet publish -c Release -o %_P%\netfx-wix\ -f net461 src\wix
13
+@rem dotnet publish -c Release -o %_P%\netfx-wixcop\ -f net461 src\wixcop
14
dotnet publish -c Release -o %_P%\WixToolset.MSBuild\net461\ -f net461 src\WixToolset.BuildTasks
15
dotnet publish -c Release -o %_P%\WixToolset.MSBuild\netcoreapp2.1\ -f netcoreapp2.1 src\WixToolset.BuildTasks
16
src/heat/Program.cs
new
+74
@@ -0,0 +1,74 @@
1
+// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
+
3
+namespace WixToolset.Tools.Heat
4
+{
5
+ using System;
6
+ using System.Runtime.InteropServices;
7
+ using WixToolset.Core;
8
+ using WixToolset.Data;
9
+ using WixToolset.Extensibility;
10
+ using WixToolset.Extensibility.Data;
11
+ using WixToolset.Extensibility.Services;
12
+ using WixToolset.Harvesters;
13
+ using WixToolset.Tools.Core;
14
+
15
+ /// <summary>
16
+ /// Wix Toolset Harvester.
17
+ /// </summary>
18
+ public sealed class Program
19
+ {
20
+ /// <summary>
21
+ /// The main entry point for the application.
22
+ /// </summary>
23
+ /// <param name="args">Commandline arguments for the application.</param>
24
+ /// <returns>Returns the application error code.</returns>
25
+ [MTAThread]
26
+ public static int Main(string[] args)
27
+ {
28
+ var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
29
+ var listener = new ConsoleMessageListener("HEAT", "heat.exe");
30
+
31
+ try
32
+ {
33
+ var program = new Program();
34
+ return program.Run(serviceProvider, listener, args);
35
+ }
36
+ catch (WixException e)
37
+ {
38
+ listener.Write(e.Error);
39
+
40
+ return e.Error.Id;
41
+ }
42
+ catch (Exception e)
43
+ {
44
+ listener.Write(ErrorMessages.UnexpectedException(e));
45
+
46
+ if (e is NullReferenceException || e is SEHException)
47
+ {
48
+ throw;
49
+ }
50
+
51
+ return e.HResult;
52
+ }
53
+ }
54
+
55
+ /// <summary>
56
+ /// Run the application with the given arguments.
57
+ /// </summary>
58
+ /// <param name="serviceProvider">Service provider to use throughout this execution.</param>
59
+ /// <param name="args">The commandline arguments.</param>
60
+ /// <returns>Returns the application error code.</returns>
61
+ public int Run(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string[] args)
62
+ {
63
+ var messaging = serviceProvider.GetService<IMessaging>();
64
+ messaging.SetListener(listener);
65
+
66
+ var arguments = serviceProvider.GetService<ICommandLineArguments>();
67
+ arguments.Populate(args);
68
+
69
+ var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider);
70
+ var command = commandLine.ParseStandardCommandLine(arguments);
71
+ return command?.Execute() ?? 1;
72
+ }
73
+ }
74
+}
src/heat/heat.csproj
new
+34
@@ -0,0 +1,34 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
+
4
+<Project Sdk="Microsoft.NET.Sdk">
5
+ <PropertyGroup>
6
+ <TargetFrameworks>netcoreapp2.1;net461;net472</TargetFrameworks>
7
+ <OutputType>Exe</OutputType>
8
+ <Description>Harvester</Description>
9
+ <Title>WiX Harvester</Title>
10
+ <DebugType>embedded</DebugType>
11
+ <PublishRepositoryUrl>true</PublishRepositoryUrl>
12
+ <!-- <PackAsTool>true</PackAsTool> -->
13
+ <RuntimeIdentifier Condition=" '$(RuntimeIdentifier)'=='' and '$(TargetFramework)'!='netcoreapp2.1' ">win-x86</RuntimeIdentifier>
14
+ <PlatformTarget>AnyCPU</PlatformTarget>
15
+ </PropertyGroup>
16
+
17
+ <PropertyGroup>
18
+ <NoWarn>NU1701</NoWarn>
19
+ </PropertyGroup>
20
+
21
+ <ItemGroup>
22
+ <ProjectReference Include="..\WixToolset.Tools.Core\WixToolset.Tools.Core.csproj" />
23
+ </ItemGroup>
24
+
25
+ <ItemGroup>
26
+ <PackageReference Include="WixToolset.Core" Version="4.0.*" />
27
+ <PackageReference Include="WixToolset.Harvesters" Version="4.0.*" />
28
+ </ItemGroup>
29
+
30
+ <ItemGroup>
31
+ <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
32
+ <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" />
33
+ </ItemGroup>
34
+</Project>
src/heat/heat.net461.v3.ncrunchproject
new
+5
@@ -0,0 +1,5 @@
1
+<ProjectConfiguration>
2
+ <Settings>
3
+ <HiddenComponentWarnings />
4
+ </Settings>
5
+</ProjectConfiguration>
\ No newline at end of file
src/heat/heat.netcoreapp2.1.v3.ncrunchproject
new
+5
@@ -0,0 +1,5 @@
1
+<ProjectConfiguration>
2
+ <Settings>
3
+ <HiddenComponentWarnings />
4
+ </Settings>
5
+</ProjectConfiguration>
\ No newline at end of file