@joebigelow / wix / commits / 238a1601

Hide visible NetCoreCheck.exe window.

Fixes https://github.com/wixtoolset/issues/issues/7353. Also adds unit test and removes dead code.

Bob Arnson committed Apr 3, 2023 at 22:16 UTC 238a1601a3cdf11cb9becaf8a53f281bdbbcbf09
7 files changed +60 -17
src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
+23
@@ -177,6 +177,29 @@ namespace WixToolsetTest.Netfx
177 }, results.OrderBy(s => s).ToArray());
178 }
179
180 + [Fact]
181 + public void CanBuildUsingDotNetCompatibilityCheck()
182 + {
183 + var folder = TestData.Get(@"TestData\UsingDotNetCompatibilityCheck");
184 + var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder });
185 +
186 + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4NetFxDotNetCheck");
187 + WixAssert.CompareLineByLine(new[]
188 + {
189 + "Binary:Wix4NetCheck_arm64\t[Binary data]",
190 + "Binary:Wix4NetCheck_x64\t[Binary data]",
191 + "Binary:Wix4NetCheck_x86\t[Binary data]",
192 + "Binary:Wix4NetFxCA_X64\t[Binary data]",
193 + "CustomAction:Wix4NetFxDotNetCompatibilityCheck_X64\t1\tWix4NetFxCA_X64\tDotNetCompatibilityCheck\t",
194 + "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_X64\t3649\tWix4NetFxCA_X64\tExecNetFx\t",
195 + "CustomAction:Wix4NetFxExecuteNativeImageCommitUninstall_X64\t3649\tWix4NetFxCA_X64\tExecNetFx\t",
196 + "CustomAction:Wix4NetFxExecuteNativeImageInstall_X64\t3137\tWix4NetFxCA_X64\tExecNetFx\t",
197 + "CustomAction:Wix4NetFxExecuteNativeImageUninstall_X64\t3137\tWix4NetFxCA_X64\tExecNetFx\t",
198 + "CustomAction:Wix4NetFxScheduleNativeImage_X64\t1\tWix4NetFxCA_X64\tSchedNetFx\t",
199 + "Wix4NetFxDotNetCheck:DotNetCoreCheckManualId\tMicrosoft.NETCore.App\tx64\t7.0.1\tLatestMajor\tDOTNETCORECHECKRESULT",
200 + }, results.OrderBy(s => s).ToArray());
201 + }
202 +
203 private static void Build(string[] args)
204 {
205 var result = WixRunner.Execute(args);
src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.en-us.wxl new
+9
@@ -0,0 +1,9 @@
1 +<!--
2 +This file contains the declaration of all the localizable strings.
3 +-->
4 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
5 +
6 + <String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." />
7 + <String Id="FeatureTitle" Value="MsiPackage" />
8 +
9 +</WixLocalization>
src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.wxs new
+17
@@ -0,0 +1,17 @@
1 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx">
2 + <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4 +
5 + <netfx:DotNetCompatibilityCheck Id="DotNetCoreCheckManualId" Property="DOTNETCORECHECKRESULT" Platform="x64" RuntimeType="core" RollForward="latestMajor" Version="7.0.1" />
6 +
7 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
8 + <ComponentGroupRef Id="ProductComponents" />
9 + </Feature>
10 + </Package>
11 +
12 + <Fragment>
13 + <StandardDirectory Id="ProgramFilesFolder">
14 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 + </StandardDirectory>
16 + </Fragment>
17 +</Wix>
src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/PackageComponents.wxs new
+9
@@ -0,0 +1,9 @@
1 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx">
2 + <Fragment>
3 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
4 + <Component>
5 + <File Name="fake.dll" Source="example.txt" />
6 + </Component>
7 + </ComponentGroup>
8 + </Fragment>
9 +</Wix>
src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/example.txt new
+1
@@ -0,0 +1 @@
1 +This is example.txt.
\ No newline at end of file
src/ext/NetFx/wixext/NetFxCompiler.cs
-17
@@ -697,9 +697,6 @@ namespace WixToolset.Netfx
697 case "Platform":
698 platform = this.ParsePlatform(element, sourceLineNumbers, attrib);
699 break;
700 - case "FeatureBand":
701 - platform = this.ParseFeatureBand(element, sourceLineNumbers, attrib);
702 - break;
700 case "Version":
701 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib);
702 break;
@@ -812,20 +809,6 @@ namespace WixToolset.Netfx
809 return platform;
810 }
811
815 - private string ParseFeatureBand(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
816 - {
817 - string featureBand = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
818 -
819 - if (!Int32.TryParse(featureBand, out var intFeatureBand) || (100 > intFeatureBand) || (intFeatureBand > 999))
820 - {
821 - this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, element.Name.LocalName,
822 - attrib.Name.LocalName, featureBand, "An integer in the range [100 - 999]"));
823 -
824 - }
825 -
826 - return featureBand;
827 - }
828 -
812 private string ParseRuntimeType(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
813 {
814 var runtimeType = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
src/libs/dutil/WixToolset.DUtil/procutil.cpp
+1
@@ -352,6 +352,7 @@ extern "C" HRESULT DAPI ProcExec(
352 ProcExitOnFailure(hr, "Failed to allocate full command-line.");
353
354 si.cb = sizeof(si);
355 + si.dwFlags = STARTF_USESHOWWINDOW;
356 si.wShowWindow = static_cast<WORD>(nCmdShow);
357 if (!::CreateProcessW(wzExecutablePath, sczFullCommandLine, NULL, NULL, FALSE, 0, 0, NULL, &si, &pi))
358 {