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
{