Support Bundle building
Rob Mensching committed
Oct 7, 2019 at 09:40 UTC
db7cf299e0110eefbc9fdc2cd6e873177b443ee7
6 files changed
+64
-3
src/WixToolset.Extensibility/Data/IBindContext.cs
+3
-1
@@ -1,4 +1,4 @@
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.
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.Extensibility.Data
4
{
@@ -10,6 +10,8 @@ namespace WixToolset.Extensibility.Data
10
{
11
IServiceProvider ServiceProvider { get; }
12
13
+ string BurnStubPath { get; set; }
14
+
15
int CabbingThreadCount { get; set; }
16
17
string CabCachePath { get; set; }
src/WixToolset.Extensibility/Data/IResolvedDirectory.cs
new
+19
@@ -0,0 +1,19 @@
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.Extensibility.Data
4
+{
5
+ /// <summary>
6
+ /// Used for resolved directory information.
7
+ /// </summary>
8
+ public interface IResolvedDirectory
9
+ {
10
+ /// <summary>The directory parent.</summary>
11
+ string DirectoryParent { get; set; }
12
+
13
+ /// <summary>The name of this directory.</summary>
14
+ string Name { get; set; }
15
+
16
+ /// <summary>The path of this directory.</summary>
17
+ string Path { get; set; }
18
+ }
19
+}
src/WixToolset.Extensibility/IBurnBackendExtension.cs
+1
-2
@@ -3,7 +3,6 @@
3
namespace WixToolset.Extensibility
4
{
5
using WixToolset.Data;
6
- using WixToolset.Data.Bind;
6
using WixToolset.Extensibility.Data;
7
8
public interface IBurnBackendExtension
@@ -13,7 +12,7 @@ namespace WixToolset.Extensibility
12
/// </summary>
13
void PreBackendBind(IBindContext context);
14
16
- string ResolveRelatedFile(string source, string relatedSource, string type, SourceLineNumber sourceLineNumbers, BindStage bindStage);
15
+ IResolveFileResult ResolveRelatedFile(string source, string relatedSource, string type, SourceLineNumber sourceLineNumbers, BindStage bindStage);
16
17
string ResolveUrl(string url, string fallbackUrl, string packageId, string payloadId, string fileName);
18
src/WixToolset.Extensibility/Services/IBackendHelper.cs
+8
@@ -27,6 +27,14 @@ namespace WixToolset.Extensibility.Services
27
/// <returns>The generated GUID for the given namespace and value.</returns>
28
string CreateGuid(Guid namespaceGuid, string value);
29
30
+ /// <summary>
31
+ /// Creates a resolved directory.
32
+ /// </summary>
33
+ /// <param name="directoryParent">Directory parent identifier.</param>
34
+ /// <param name="name">Name of directory.</param>
35
+ /// <returns>Resolved directory.</returns>
36
+ IResolvedDirectory CreateResolvedDirectory(string directoryParent, string name);
37
+
38
/// <summary>
39
/// Creates a tracked file.
40
/// </summary>
src/WixToolset.Extensibility/Services/IPathResolver.cs
new
+31
@@ -0,0 +1,31 @@
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.Extensibility.Services
4
+{
5
+ using System.Collections.Generic;
6
+ using WixToolset.Extensibility.Data;
7
+
8
+ public interface IPathResolver
9
+ {
10
+ /// <summary>
11
+ /// Get the source path of a directory.
12
+ /// </summary>
13
+ /// <param name="directories">All cached directories.</param>
14
+ /// <param name="componentIdGenSeeds">Hash table of Component GUID generation seeds indexed by directory id.</param>
15
+ /// <param name="directory">Directory identifier.</param>
16
+ /// <param name="canonicalize">Canonicalize the path for standard directories.</param>
17
+ /// <returns>Source path of a directory.</returns>
18
+ string GetDirectoryPath(Dictionary<string, IResolvedDirectory> directories, Dictionary<string, string> componentIdGenSeeds, string directory, bool canonicalize);
19
+
20
+ /// <summary>
21
+ /// Gets the source path of a file.
22
+ /// </summary>
23
+ /// <param name="directories">All cached directories in <see cref="ResolvedDirectory"/>.</param>
24
+ /// <param name="directoryId">Parent directory identifier.</param>
25
+ /// <param name="fileName">File name (in long|source format).</param>
26
+ /// <param name="compressed">Specifies the package is compressed.</param>
27
+ /// <param name="useLongName">Specifies the package uses long file names.</param>
28
+ /// <returns>Source path of file relative to package directory.</returns>
29
+ string GetFileSourcePath(Dictionary<string, IResolvedDirectory> directories, string directoryId, string fileName, bool compressed, bool useLongName);
30
+ }
31
+}
src/WixToolset.Extensibility/Services/IWindowsInstallerBackendHelper.cs
+2
@@ -11,5 +11,7 @@ namespace WixToolset.Extensibility.Services
11
public interface IWindowsInstallerBackendHelper
12
{
13
bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, Output output, TableDefinition[] tableDefinitions);
14
+
15
+ bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, Output output, TableDefinition[] tableDefinitions, bool columnZeroIsId);
16
}
17
}