aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-04-03 22:16:27 -0400
committerBob Arnson <github@bobs.org>2023-04-04 12:29:33 -0400
commit238a1601a3cdf11cb9becaf8a53f281bdbbcbf09 (patch)
treed00fa3a47c4d862e763240e2770df87974c25445
parent9023fd4d6dd4339003defcfb12002432357193b9 (diff)
downloadwix-238a1601a3cdf11cb9becaf8a53f281bdbbcbf09.tar.gz
wix-238a1601a3cdf11cb9becaf8a53f281bdbbcbf09.tar.bz2
wix-238a1601a3cdf11cb9becaf8a53f281bdbbcbf09.zip
Hide visible NetCoreCheck.exe window.
Fixes https://github.com/wixtoolset/issues/issues/7353. Also adds unit test and removes dead code.
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs23
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.en-us.wxl9
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.wxs17
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/PackageComponents.wxs9
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/example.txt1
-rw-r--r--src/ext/NetFx/wixext/NetFxCompiler.cs17
-rw-r--r--src/libs/dutil/WixToolset.DUtil/procutil.cpp1
7 files changed, 60 insertions, 17 deletions
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
index 38997c67..aebfe9f4 100644
--- a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
@@ -177,6 +177,29 @@ namespace WixToolsetTest.Netfx
177 }, results.OrderBy(s => s).ToArray()); 177 }, results.OrderBy(s => s).ToArray());
178 } 178 }
179 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
180 private static void Build(string[] args) 203 private static void Build(string[] args)
181 { 204 {
182 var result = WixRunner.Execute(args); 205 var result = WixRunner.Execute(args);
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.en-us.wxl b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.en-us.wxl
new file mode 100644
index 00000000..f1df1234
--- /dev/null
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.en-us.wxl
@@ -0,0 +1,9 @@
1<!--
2This 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>
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.wxs b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.wxs
new file mode 100644
index 00000000..bf286abb
--- /dev/null
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/Package.wxs
@@ -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>
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/PackageComponents.wxs b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/PackageComponents.wxs
new file mode 100644
index 00000000..d9b211bd
--- /dev/null
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/PackageComponents.wxs
@@ -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>
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/example.txt b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/example.txt
new file mode 100644
index 00000000..1b4ffe8a
--- /dev/null
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/TestData/UsingDotNetCompatibilityCheck/example.txt
@@ -0,0 +1 @@
This is example.txt. \ No newline at end of file
diff --git a/src/ext/NetFx/wixext/NetFxCompiler.cs b/src/ext/NetFx/wixext/NetFxCompiler.cs
index c40bc77b..bfadbe07 100644
--- a/src/ext/NetFx/wixext/NetFxCompiler.cs
+++ b/src/ext/NetFx/wixext/NetFxCompiler.cs
@@ -697,9 +697,6 @@ namespace WixToolset.Netfx
697 case "Platform": 697 case "Platform":
698 platform = this.ParsePlatform(element, sourceLineNumbers, attrib); 698 platform = this.ParsePlatform(element, sourceLineNumbers, attrib);
699 break; 699 break;
700 case "FeatureBand":
701 platform = this.ParseFeatureBand(element, sourceLineNumbers, attrib);
702 break;
703 case "Version": 700 case "Version":
704 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib); 701 version = this.ParseHelper.GetAttributeVersionValue(sourceLineNumbers, attrib);
705 break; 702 break;
@@ -812,20 +809,6 @@ namespace WixToolset.Netfx
812 return platform; 809 return platform;
813 } 810 }
814 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
829 private string ParseRuntimeType(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib) 812 private string ParseRuntimeType(XElement element, SourceLineNumber sourceLineNumbers, XAttribute attrib)
830 { 813 {
831 var runtimeType = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); 814 var runtimeType = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
diff --git a/src/libs/dutil/WixToolset.DUtil/procutil.cpp b/src/libs/dutil/WixToolset.DUtil/procutil.cpp
index f96a1999..aba3b495 100644
--- a/src/libs/dutil/WixToolset.DUtil/procutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/procutil.cpp
@@ -352,6 +352,7 @@ extern "C" HRESULT DAPI ProcExec(
352 ProcExitOnFailure(hr, "Failed to allocate full command-line."); 352 ProcExitOnFailure(hr, "Failed to allocate full command-line.");
353 353
354 si.cb = sizeof(si); 354 si.cb = sizeof(si);
355 si.dwFlags = STARTF_USESHOWWINDOW;
355 si.wShowWindow = static_cast<WORD>(nCmdShow); 356 si.wShowWindow = static_cast<WORD>(nCmdShow);
356 if (!::CreateProcessW(wzExecutablePath, sczFullCommandLine, NULL, NULL, FALSE, 0, 0, NULL, &si, &pi)) 357 if (!::CreateProcessW(wzExecutablePath, sczFullCommandLine, NULL, NULL, FALSE, 0, 0, NULL, &si, &pi))
357 { 358 {