diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2023-01-15 20:42:08 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2023-01-15 22:03:31 -0600 |
commit | 32024b526d129534b017d4e932f08e6a6f015102 (patch) | |
tree | 0de231ef4fdb7bbd3d24bf088288ba1ecf887b4e /src/tools | |
parent | f4329d17538c14569ab7058c1c378aa5b2297b2c (diff) | |
download | wix-32024b526d129534b017d4e932f08e6a6f015102.tar.gz wix-32024b526d129534b017d4e932f08e6a6f015102.tar.bz2 wix-32024b526d129534b017d4e932f08e6a6f015102.zip |
Add Name to Payloads created during directory harvesting.
7161
Diffstat (limited to 'src/tools')
4 files changed, 43 insertions, 2 deletions
diff --git a/src/tools/heat/DirectoryHarvester.cs b/src/tools/heat/DirectoryHarvester.cs index c153fef5..e69857ab 100644 --- a/src/tools/heat/DirectoryHarvester.cs +++ b/src/tools/heat/DirectoryHarvester.cs | |||
@@ -177,7 +177,7 @@ namespace WixToolset.Harvesters | |||
177 | { | 177 | { |
178 | try | 178 | try |
179 | { | 179 | { |
180 | int fileCount = this.HarvestDirectory(path, "SourceDir\\", harvestParent, generateType); | 180 | int fileCount = this.HarvestDirectory(path, "", harvestParent, generateType); |
181 | 181 | ||
182 | if (generateType != GenerateType.PayloadGroup) | 182 | if (generateType != GenerateType.PayloadGroup) |
183 | { | 183 | { |
@@ -256,7 +256,7 @@ namespace WixToolset.Harvesters | |||
256 | foreach (string filePath in Directory.GetFiles(path)) | 256 | foreach (string filePath in Directory.GetFiles(path)) |
257 | { | 257 | { |
258 | string fileName = Path.GetFileName(filePath); | 258 | string fileName = Path.GetFileName(filePath); |
259 | string source = String.Concat(relativePath, fileName); | 259 | string source = String.Concat("SourceDir\\", relativePath, fileName); |
260 | 260 | ||
261 | Wix.ISchemaElement newChild; | 261 | Wix.ISchemaElement newChild; |
262 | if (generateType == GenerateType.PayloadGroup) | 262 | if (generateType == GenerateType.PayloadGroup) |
@@ -265,6 +265,11 @@ namespace WixToolset.Harvesters | |||
265 | newChild = payload; | 265 | newChild = payload; |
266 | 266 | ||
267 | payload.SourceFile = source; | 267 | payload.SourceFile = source; |
268 | |||
269 | if (!String.IsNullOrEmpty(relativePath)) | ||
270 | { | ||
271 | payload.Name = String.Concat(relativePath, fileName); | ||
272 | } | ||
268 | } | 273 | } |
269 | else | 274 | else |
270 | { | 275 | { |
diff --git a/src/tools/test/WixToolsetTest.Heat/DirectoryToPayloadGroupFixture.cs b/src/tools/test/WixToolsetTest.Heat/DirectoryToPayloadGroupFixture.cs index c9b8ee30..9ca84936 100644 --- a/src/tools/test/WixToolsetTest.Heat/DirectoryToPayloadGroupFixture.cs +++ b/src/tools/test/WixToolsetTest.Heat/DirectoryToPayloadGroupFixture.cs | |||
@@ -76,5 +76,39 @@ namespace WixToolsetTest.Heat | |||
76 | }, wxs); | 76 | }, wxs); |
77 | } | 77 | } |
78 | } | 78 | } |
79 | |||
80 | [Fact] | ||
81 | public void CanHarvestNestedFiles() | ||
82 | { | ||
83 | var folder = TestData.Get("TestData", "NestedFiles"); | ||
84 | |||
85 | using (var fs = new DisposableFileSystem()) | ||
86 | { | ||
87 | var outputPath = Path.Combine(fs.GetFolder(), "out.wxs"); | ||
88 | |||
89 | var args = new[] | ||
90 | { | ||
91 | "dir", folder, | ||
92 | "-generate", "payloadgroup", | ||
93 | "-o", outputPath | ||
94 | }; | ||
95 | |||
96 | var result = HeatRunner.Execute(args); | ||
97 | result.AssertSuccess(); | ||
98 | |||
99 | var wxs = File.ReadAllLines(outputPath).Select(s => s.Replace("\"", "'")).ToArray(); | ||
100 | WixAssert.CompareLineByLine(new[] | ||
101 | { | ||
102 | "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>", | ||
103 | " <Fragment>", | ||
104 | " <PayloadGroup Id='TARGETDIR'>", | ||
105 | " <Payload SourceFile='SourceDir\\Nested\\c.txt' Name='Nested\\c.txt' />", | ||
106 | " <Payload SourceFile='SourceDir\\b.txt' />", | ||
107 | " </PayloadGroup>", | ||
108 | " </Fragment>", | ||
109 | "</Wix>", | ||
110 | }, wxs); | ||
111 | } | ||
112 | } | ||
79 | } | 113 | } |
80 | } | 114 | } |
diff --git a/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/Nested/c.txt b/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/Nested/c.txt new file mode 100644 index 00000000..17c43215 --- /dev/null +++ b/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/Nested/c.txt | |||
@@ -0,0 +1 @@ | |||
This be c.txt. \ No newline at end of file | |||
diff --git a/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/b.txt b/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/b.txt new file mode 100644 index 00000000..704b3d88 --- /dev/null +++ b/src/tools/test/WixToolsetTest.Heat/TestData/NestedFiles/b.txt | |||
@@ -0,0 +1 @@ | |||
This is b.txt | |||