aboutsummaryrefslogtreecommitdiff
path: root/src/ext
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext')
-rw-r--r--src/ext/Bal/Bal.wixext.sln165
-rw-r--r--src/ext/Bal/Bal.wixext.slnx26
-rw-r--r--src/ext/Bal/README.md4
-rw-r--r--src/ext/Bal/bal_t.proj6
-rw-r--r--src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp25
-rw-r--r--src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp93
-rw-r--r--src/ext/Bal/stdbas/precomp.h6
-rw-r--r--src/ext/Bal/stdbas/stdbas.cpp50
-rw-r--r--src/ext/Bal/stdbas/stdbas.vcxproj5
-rw-r--r--src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.filters4
-rw-r--r--src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj2
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs59
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/InternalUIBAFixture.cs3
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.icobin0 -> 766 bytes
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/Overridable/WrongCaseBundle.wxs2
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixIuiBa/IuibaWarnings.wxs2
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs3
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs3
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs13
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs3
-rw-r--r--src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj2
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleSCD/EarliestCoreBundleSCD.wixproj10
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleSCD/SelfContainedBundle.wxs8
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleSCD/ba.xslt15
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/EarliestCoreBundleTrimmedSCD.wixproj10
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs8
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/ba.xslt15
-rw-r--r--src/ext/Bal/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj2
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleSCD/LatestCoreBundleSCD.wixproj10
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleSCD/SelfContainedBundle.wxs8
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleSCD/ba.xslt15
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/LatestCoreBundleTrimmedSCD.wixproj10
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs8
-rw-r--r--src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/ba.xslt15
-rw-r--r--src/ext/Bal/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj2
-rw-r--r--src/ext/Bal/test/examples/TestEngine/ExampleTestEngine.cpp6
-rw-r--r--src/ext/Bal/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj2
-rw-r--r--src/ext/Bal/test/examples/examples.proj6
-rw-r--r--src/ext/Bal/wixext-backward-compatible/README.md56
-rw-r--r--src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.csproj2
-rw-r--r--src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec2
-rw-r--r--src/ext/Bal/wixext/BalBurnBackendExtension.cs22
-rw-r--r--src/ext/Bal/wixext/BalCompiler.cs14
-rw-r--r--src/ext/Bal/wixext/BalWarnings.cs6
-rw-r--r--src/ext/Bal/wixext/Symbols/WixBalPackageInfoSymbol.cs8
-rw-r--r--src/ext/Bal/wixiuiba/wixiuiba.vcxproj2
-rw-r--r--src/ext/Bal/wixprqba/wixprqba.vcxproj2
-rw-r--r--src/ext/Bal/wixstdba/wixstdba.vcxproj2
-rw-r--r--src/ext/Bal/wixstdfn/build/WixToolset.WixStandardBootstrapperApplicationFunctionApi.props2
-rw-r--r--src/ext/Bal/wixstdfn/wixstdfn.vcxproj2
-rw-r--r--src/ext/ComPlus/ComPlus.wixext.sln64
-rw-r--r--src/ext/ComPlus/ComPlus.wixext.slnx16
-rw-r--r--src/ext/ComPlus/README.md4
-rw-r--r--src/ext/ComPlus/ca/complusca.vcxproj2
-rw-r--r--src/ext/ComPlus/complus_t.proj6
-rw-r--r--src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs5
-rw-r--r--src/ext/ComPlus/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj2
-rw-r--r--src/ext/Dependency/Dependency.wixext.sln61
-rw-r--r--src/ext/Dependency/Dependency.wixext.slnx15
-rw-r--r--src/ext/Dependency/README.md4
-rw-r--r--src/ext/Dependency/ca/dependencyca.vcxproj2
-rw-r--r--src/ext/Dependency/ca/dependencyca.vcxproj.filters4
-rw-r--r--src/ext/Dependency/dependency_t.proj6
-rw-r--r--src/ext/Dependency/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs5
-rw-r--r--src/ext/Dependency/test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj2
-rw-r--r--src/ext/DirectX/DirectX.wixext.sln61
-rw-r--r--src/ext/DirectX/DirectX.wixext.slnx15
-rw-r--r--src/ext/DirectX/README.md4
-rw-r--r--src/ext/DirectX/ca/directxca.vcxproj2
-rw-r--r--src/ext/DirectX/directx_t.proj6
-rw-r--r--src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs5
-rw-r--r--src/ext/DirectX/test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj2
-rw-r--r--src/ext/Firewall/Firewall.wixext.sln75
-rw-r--r--src/ext/Firewall/Firewall.wixext.slnx18
-rw-r--r--src/ext/Firewall/README.md4
-rw-r--r--src/ext/Firewall/ca/firewall.cpp37
-rw-r--r--src/ext/Firewall/ca/fwca.vcxproj2
-rw-r--r--src/ext/Firewall/firewall_t.proj6
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs41
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msibin0 -> 196608 bytes
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj6
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs36
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj2
-rw-r--r--src/ext/Firewall/wixext/FirewallDecompiler.cs31
-rw-r--r--src/ext/Http/Http.wixext.sln61
-rw-r--r--src/ext/Http/Http.wixext.slnx15
-rw-r--r--src/ext/Http/README.md4
-rw-r--r--src/ext/Http/ca/httpca.vcxproj4
-rw-r--r--src/ext/Http/ca/httpca.vcxproj.filters4
-rw-r--r--src/ext/Http/http_t.proj6
-rw-r--r--src/ext/Http/test/WixToolsetTest.Http/HttpExtensionFixture.cs4
-rw-r--r--src/ext/Http/test/WixToolsetTest.Http/WixToolsetTest.Http.csproj2
-rw-r--r--src/ext/Iis/Iis.wixext.sln61
-rw-r--r--src/ext/Iis/Iis.wixext.slnx15
-rw-r--r--src/ext/Iis/README.md4
-rw-r--r--src/ext/Iis/ca/iisca.vcxproj2
-rw-r--r--src/ext/Iis/ca/scaapppool.cpp18
-rw-r--r--src/ext/Iis/ca/scaexecIIS7.cpp18
-rw-r--r--src/ext/Iis/ca/scafilter.cpp4
-rw-r--r--src/ext/Iis/ca/scawebappext.cpp2
-rw-r--r--src/ext/Iis/iis_t.proj6
-rw-r--r--src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs4
-rw-r--r--src/ext/Iis/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj2
-rw-r--r--src/ext/Msmq/Msmq.wixext.sln61
-rw-r--r--src/ext/Msmq/Msmq.wixext.slnx15
-rw-r--r--src/ext/Msmq/README.md4
-rw-r--r--src/ext/Msmq/ca/msmqca.vcxproj4
-rw-r--r--src/ext/Msmq/msmq_t.proj6
-rw-r--r--src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs5
-rw-r--r--src/ext/Msmq/test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj2
-rw-r--r--src/ext/NetFx/NetFx.wixext.sln105
-rw-r--r--src/ext/NetFx/NetFx.wixext.slnx23
-rw-r--r--src/ext/NetFx/README.md4
-rw-r--r--src/ext/NetFx/be/netfxsearch.cpp8
-rw-r--r--src/ext/NetFx/ca/netfxca.vcxproj2
-rw-r--r--src/ext/NetFx/netcoresearch/netcoresearch.cpp8
-rw-r--r--src/ext/NetFx/netcoresearch/netcoresearch.vcxproj6
-rw-r--r--src/ext/NetFx/netcoresearch/packages.config14
-rw-r--r--src/ext/NetFx/netfx_t.proj6
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs4
-rw-r--r--src/ext/NetFx/test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj2
-rw-r--r--src/ext/PowerShell/PowerShell.wixext.sln63
-rw-r--r--src/ext/PowerShell/PowerShell.wixext.slnx14
-rw-r--r--src/ext/PowerShell/README.md4
-rw-r--r--src/ext/PowerShell/powershell_t.proj6
-rw-r--r--src/ext/PowerShell/test/WixToolsetTest.PowerShell/PowerShellExtensionFixture.cs5
-rw-r--r--src/ext/PowerShell/test/WixToolsetTest.PowerShell/WixToolsetTest.Powershell.csproj2
-rw-r--r--src/ext/Sql/README.md4
-rw-r--r--src/ext/Sql/Sql.wixext.sln61
-rw-r--r--src/ext/Sql/Sql.wixext.slnx15
-rw-r--r--src/ext/Sql/ca/sqlca.vcxproj2
-rw-r--r--src/ext/Sql/sql_t.proj6
-rw-r--r--src/ext/Sql/test/WixToolsetTest.Sql/SqlExtensionFixture.cs5
-rw-r--r--src/ext/Sql/test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj2
-rw-r--r--src/ext/UI/README.md4
-rw-r--r--src/ext/UI/UI.wixext.sln75
-rw-r--r--src/ext/UI/UI.wixext.slnx18
-rw-r--r--src/ext/UI/ca/uica.vcxproj2
-rw-r--r--src/ext/UI/test/WixToolsetTest.UI/TestData/WixUI_Advanced/Package.wxs20
-rw-r--r--src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs7
-rw-r--r--src/ext/UI/test/WixToolsetTest.UI/WixToolsetTest.UI.csproj2
-rw-r--r--src/ext/UI/ui_t.proj6
-rw-r--r--src/ext/UI/wixlib/WixUI_Advanced.wxs13
-rw-r--r--src/ext/UI/wixlib/WixUI_uk-UA.wxl304
-rw-r--r--src/ext/Util/README.md4
-rw-r--r--src/ext/Util/Util.wixext.sln87
-rw-r--r--src/ext/Util/Util.wixext.slnx22
-rw-r--r--src/ext/Util/be/utilsearch.cpp6
-rw-r--r--src/ext/Util/ca/utilca.vcxproj2
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs9
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj2
-rw-r--r--src/ext/Util/util_t.proj6
-rw-r--r--src/ext/Util/wixext/UtilCompiler.cs5
-rw-r--r--src/ext/Util/wixext/UtilDecompiler.cs2
-rw-r--r--src/ext/VisualStudio/README.md4
-rw-r--r--src/ext/VisualStudio/VisualStudio.wixext.sln84
-rw-r--r--src/ext/VisualStudio/VisualStudio.wixext.slnx18
-rw-r--r--src/ext/VisualStudio/ca/vsca.cpp4
-rw-r--r--src/ext/VisualStudio/ca/vsca.vcxproj2
-rw-r--r--src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs5
-rw-r--r--src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj2
-rw-r--r--src/ext/VisualStudio/visualstudio_t.proj6
-rw-r--r--src/ext/ext_t.proj21
163 files changed, 1149 insertions, 1594 deletions
diff --git a/src/ext/Bal/Bal.wixext.sln b/src/ext/Bal/Bal.wixext.sln
deleted file mode 100644
index cbd66f76..00000000
--- a/src/ext/Bal/Bal.wixext.sln
+++ /dev/null
@@ -1,165 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.8.34408.163
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bafunctions", "Samples\bafunctions\bafunctions.vcxproj", "{EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}"
7EndProject
8Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wixstdba", "wixstdba\wixstdba.vcxproj", "{41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}"
9EndProject
10Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "bas", "wixlib\bas.wixproj", "{3444D952-F21C-496F-AB6B-56435BFD0787}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.BootstrapperApplications.wixext", "wixext\WixToolset.BootstrapperApplications.wixext.csproj", "{BF720A63-9D7B-456E-B60C-8122852D9FED}"
13EndProject
14Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.BootstrapperApplications", "test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj", "{89D479FC-20DA-44D8-AE38-48F063223498}"
15EndProject
16Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wixiuiba", "wixiuiba\wixiuiba.vcxproj", "{0F73E566-925C-448D-99CB-3A7F5DF399C8}"
17EndProject
18Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stdbas", "stdbas\stdbas.vcxproj", "{DBBF5F32-BAEA-46A8-99A0-17277A906456}"
19EndProject
20Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WixStdFnUnitTest", "test\WixStdFnUnitTest\WixStdFnUnitTest.vcxproj", "{9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}"
21EndProject
22Global
23 GlobalSection(SolutionConfigurationPlatforms) = preSolution
24 Debug|Any CPU = Debug|Any CPU
25 Debug|ARM64 = Debug|ARM64
26 Debug|x64 = Debug|x64
27 Debug|x86 = Debug|x86
28 Release|Any CPU = Release|Any CPU
29 Release|ARM64 = Release|ARM64
30 Release|x64 = Release|x64
31 Release|x86 = Release|x86
32 EndGlobalSection
33 GlobalSection(ProjectConfigurationPlatforms) = postSolution
34 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|Any CPU.ActiveCfg = Debug|Win32
35 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|Any CPU.Build.0 = Debug|Win32
36 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|ARM64.ActiveCfg = Debug|ARM64
37 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|ARM64.Build.0 = Debug|ARM64
38 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|x64.ActiveCfg = Debug|x64
39 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|x64.Build.0 = Debug|x64
40 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|x86.ActiveCfg = Debug|Win32
41 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Debug|x86.Build.0 = Debug|Win32
42 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|Any CPU.ActiveCfg = Release|Win32
43 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|Any CPU.Build.0 = Release|Win32
44 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|ARM64.ActiveCfg = Release|ARM64
45 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|ARM64.Build.0 = Release|ARM64
46 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|x64.ActiveCfg = Release|x64
47 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|x64.Build.0 = Release|x64
48 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|x86.ActiveCfg = Release|Win32
49 {EB0A7D51-2133-4EE7-B6CA-87DBEAC67E02}.Release|x86.Build.0 = Release|Win32
50 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|Any CPU.ActiveCfg = Debug|Win32
51 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|Any CPU.Build.0 = Debug|Win32
52 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|ARM64.ActiveCfg = Debug|ARM64
53 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|ARM64.Build.0 = Debug|ARM64
54 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|x64.ActiveCfg = Debug|x64
55 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|x64.Build.0 = Debug|x64
56 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|x86.ActiveCfg = Debug|Win32
57 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Debug|x86.Build.0 = Debug|Win32
58 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|Any CPU.ActiveCfg = Release|Win32
59 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|Any CPU.Build.0 = Release|Win32
60 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|ARM64.ActiveCfg = Release|ARM64
61 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|ARM64.Build.0 = Release|ARM64
62 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|x64.ActiveCfg = Release|x64
63 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|x64.Build.0 = Release|x64
64 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|x86.ActiveCfg = Release|Win32
65 {41085A22-E6AA-4E8B-AB1B-DDEE0DC89DFA}.Release|x86.Build.0 = Release|Win32
66 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|Any CPU.ActiveCfg = Debug|x86
67 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|Any CPU.Build.0 = Debug|x86
68 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|ARM64.ActiveCfg = Debug|x86
69 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|x64.ActiveCfg = Debug|x86
70 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|x86.ActiveCfg = Debug|x86
71 {3444D952-F21C-496F-AB6B-56435BFD0787}.Debug|x86.Build.0 = Debug|x86
72 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|Any CPU.ActiveCfg = Release|x86
73 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|Any CPU.Build.0 = Release|x86
74 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|ARM64.ActiveCfg = Release|x86
75 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|x64.ActiveCfg = Release|x86
76 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|x86.ActiveCfg = Release|x86
77 {3444D952-F21C-496F-AB6B-56435BFD0787}.Release|x86.Build.0 = Release|x86
78 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
79 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|Any CPU.Build.0 = Debug|Any CPU
80 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|ARM64.ActiveCfg = Debug|Any CPU
81 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|ARM64.Build.0 = Debug|Any CPU
82 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|x64.ActiveCfg = Debug|Any CPU
83 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|x64.Build.0 = Debug|Any CPU
84 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|x86.ActiveCfg = Debug|Any CPU
85 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Debug|x86.Build.0 = Debug|Any CPU
86 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|Any CPU.ActiveCfg = Release|Any CPU
87 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|Any CPU.Build.0 = Release|Any CPU
88 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|ARM64.ActiveCfg = Release|Any CPU
89 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|ARM64.Build.0 = Release|Any CPU
90 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|x64.ActiveCfg = Release|Any CPU
91 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|x64.Build.0 = Release|Any CPU
92 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|x86.ActiveCfg = Release|Any CPU
93 {BF720A63-9D7B-456E-B60C-8122852D9FED}.Release|x86.Build.0 = Release|Any CPU
94 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
95 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|Any CPU.Build.0 = Debug|Any CPU
96 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|ARM64.ActiveCfg = Debug|Any CPU
97 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|ARM64.Build.0 = Debug|Any CPU
98 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|x64.ActiveCfg = Debug|Any CPU
99 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|x64.Build.0 = Debug|Any CPU
100 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|x86.ActiveCfg = Debug|Any CPU
101 {89D479FC-20DA-44D8-AE38-48F063223498}.Debug|x86.Build.0 = Debug|Any CPU
102 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|Any CPU.ActiveCfg = Release|Any CPU
103 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|Any CPU.Build.0 = Release|Any CPU
104 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|ARM64.ActiveCfg = Release|Any CPU
105 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|ARM64.Build.0 = Release|Any CPU
106 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|x64.ActiveCfg = Release|Any CPU
107 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|x64.Build.0 = Release|Any CPU
108 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|x86.ActiveCfg = Release|Any CPU
109 {89D479FC-20DA-44D8-AE38-48F063223498}.Release|x86.Build.0 = Release|Any CPU
110 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|Any CPU.ActiveCfg = Debug|x64
111 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|Any CPU.Build.0 = Debug|x64
112 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|ARM64.ActiveCfg = Debug|ARM64
113 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|ARM64.Build.0 = Debug|ARM64
114 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|x64.ActiveCfg = Debug|x64
115 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|x64.Build.0 = Debug|x64
116 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|x86.ActiveCfg = Debug|Win32
117 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Debug|x86.Build.0 = Debug|Win32
118 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|Any CPU.ActiveCfg = Release|x64
119 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|Any CPU.Build.0 = Release|x64
120 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|ARM64.ActiveCfg = Release|ARM64
121 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|ARM64.Build.0 = Release|ARM64
122 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|x64.ActiveCfg = Release|x64
123 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|x64.Build.0 = Release|x64
124 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|x86.ActiveCfg = Release|Win32
125 {0F73E566-925C-448D-99CB-3A7F5DF399C8}.Release|x86.Build.0 = Release|Win32
126 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|Any CPU.ActiveCfg = Debug|x64
127 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|Any CPU.Build.0 = Debug|x64
128 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|ARM64.ActiveCfg = Debug|ARM64
129 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|ARM64.Build.0 = Debug|ARM64
130 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|x64.ActiveCfg = Debug|x64
131 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|x64.Build.0 = Debug|x64
132 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|x86.ActiveCfg = Debug|Win32
133 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Debug|x86.Build.0 = Debug|Win32
134 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|Any CPU.ActiveCfg = Release|x64
135 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|Any CPU.Build.0 = Release|x64
136 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|ARM64.ActiveCfg = Release|ARM64
137 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|ARM64.Build.0 = Release|ARM64
138 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|x64.ActiveCfg = Release|x64
139 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|x64.Build.0 = Release|x64
140 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|x86.ActiveCfg = Release|Win32
141 {DBBF5F32-BAEA-46A8-99A0-17277A906456}.Release|x86.Build.0 = Release|Win32
142 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|Any CPU.ActiveCfg = Debug|Win32
143 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|Any CPU.Build.0 = Debug|Win32
144 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|ARM64.ActiveCfg = Debug|Win32
145 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|ARM64.Build.0 = Debug|Win32
146 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x64.ActiveCfg = Debug|Win32
147 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x64.Build.0 = Debug|Win32
148 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.ActiveCfg = Debug|Win32
149 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.Build.0 = Debug|Win32
150 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|Any CPU.ActiveCfg = Release|Win32
151 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|Any CPU.Build.0 = Release|Win32
152 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|ARM64.ActiveCfg = Release|Win32
153 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|ARM64.Build.0 = Release|Win32
154 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x64.ActiveCfg = Release|Win32
155 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x64.Build.0 = Release|Win32
156 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.ActiveCfg = Release|Win32
157 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.Build.0 = Release|Win32
158 EndGlobalSection
159 GlobalSection(SolutionProperties) = preSolution
160 HideSolutionNode = FALSE
161 EndGlobalSection
162 GlobalSection(ExtensibilityGlobals) = postSolution
163 SolutionGuid = {74046961-48BF-467A-A6C2-F886C75CE0BE}
164 EndGlobalSection
165EndGlobal
diff --git a/src/ext/Bal/Bal.wixext.slnx b/src/ext/Bal/Bal.wixext.slnx
new file mode 100644
index 00000000..c5982c07
--- /dev/null
+++ b/src/ext/Bal/Bal.wixext.slnx
@@ -0,0 +1,26 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="ARM64" />
5 <Platform Name="x64" />
6 <Platform Name="x86" />
7 </Configurations>
8 <Project Path="Samples/bafunctions/bafunctions.vcxproj" Id="eb0a7d51-2133-4ee7-b6ca-87dbeac67e02">
9 <Platform Solution="*|Any CPU" Project="Win32" />
10 </Project>
11 <Project Path="stdbas/stdbas.vcxproj" Id="dbbf5f32-baea-46a8-99a0-17277a906456" />
12 <Project Path="test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj" Id="9b507af9-035e-4db6-8c0c-5dcc3fef2631">
13 <Platform Project="Win32" />
14 </Project>
15 <Project Path="test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj" />
16 <Project Path="wixext/WixToolset.BootstrapperApplications.wixext.csproj" />
17 <Project Path="wixiuiba/wixiuiba.vcxproj" Id="0f73e566-925c-448d-99cb-3a7f5df399c8" />
18 <Project Path="wixlib/bas.wixproj">
19 <Platform Project="x86" />
20 <Build Solution="*|Any CPU" />
21 <Build Solution="*|x86" />
22 </Project>
23 <Project Path="wixstdba/wixstdba.vcxproj" Id="41085a22-e6aa-4e8b-ab1b-ddee0dc89dfa">
24 <Platform Solution="*|Any CPU" Project="Win32" />
25 </Project>
26</Solution>
diff --git a/src/ext/Bal/README.md b/src/ext/Bal/README.md
index 5e969c4f..009615dd 100644
--- a/src/ext/Bal/README.md
+++ b/src/ext/Bal/README.md
@@ -20,9 +20,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
20Add the WiX Extension as a PackageReference to your .wixproj: 20Add the WiX Extension as a PackageReference to your .wixproj:
21 21
22``` 22```
23<Project Sdk="WixToolset.Sdk/6.0.0"> 23<Project Sdk="WixToolset.Sdk/7.0.0">
24 <ItemGroup> 24 <ItemGroup>
25 <PackageReference Include="WixToolset.BootstrapperApplications.wixext" Version="6.0.0" /> 25 <PackageReference Include="WixToolset.BootstrapperApplications.wixext" Version="7.0.0" />
26 </ItemGroup> 26 </ItemGroup>
27</Project> 27</Project>
28``` 28```
diff --git a/src/ext/Bal/bal_t.proj b/src/ext/Bal/bal_t.proj
index bb8d44a2..80da207d 100644
--- a/src/ext/Bal/bal_t.proj
+++ b/src/ext/Bal/bal_t.proj
@@ -18,7 +18,7 @@
18 18
19 <ProjectReference Include="test\examples\examples.proj" /> 19 <ProjectReference Include="test\examples\examples.proj" />
20 20
21 <ProjectReference Include="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" Targets="Test" /> 21 <ProjectReference Include="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" />
22 22
23 <!-- 23 <!--
24 Currently there are no unskipped unit tests in this project. Should that change, 24 Currently there are no unskipped unit tests in this project. Should that change,
@@ -41,4 +41,8 @@
41 <Delete Files="$(ArtifactsFolder)WixToolset.BootstrapperApplications.wixext.*.nupkg" /> 41 <Delete Files="$(ArtifactsFolder)WixToolset.BootstrapperApplications.wixext.*.nupkg" />
42 <Delete Files="$(ArtifactsFolder)WixToolset.WixStandardBootstrapperApplicationFunctionApi.wixext.*.nupkg" /> 42 <Delete Files="$(ArtifactsFolder)WixToolset.WixStandardBootstrapperApplicationFunctionApi.wixext.*.nupkg" />
43 </Target> 43 </Target>
44
45 <Target Name="WixTest">
46 <MSBuild Projects="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" Targets="Test" />
47 </Target>
44</Project> 48</Project>
diff --git a/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp b/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp
index 270ce40c..bae098d4 100644
--- a/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp
+++ b/src/ext/Bal/stdbas/WixInternalUIBootstrapperApplication.cpp
@@ -557,14 +557,19 @@ private:
557 HRESULT CreateMainWindow() 557 HRESULT CreateMainWindow()
558 { 558 {
559 HRESULT hr = S_OK; 559 HRESULT hr = S_OK;
560 WNDCLASSW wc = { }; 560 WNDCLASSEXW wc = { };
561 DWORD dwWindowStyle = WS_POPUP; 561 DWORD dwWindowStyle = WS_POPUP;
562 562
563 LoadBundleIcon(m_hModule, &m_hIcon, &m_hSmallIcon);
564
565 wc.cbSize = sizeof(WNDCLASSEXW);
563 wc.lpfnWndProc = CWixInternalUIBootstrapperApplication::WndProc; 566 wc.lpfnWndProc = CWixInternalUIBootstrapperApplication::WndProc;
564 wc.hInstance = m_hModule; 567 wc.hInstance = m_hModule;
565 wc.lpszClassName = WIXIUIBA_WINDOW_CLASS; 568 wc.lpszClassName = WIXIUIBA_WINDOW_CLASS;
569 wc.hIcon = m_hIcon;
570 wc.hIconSm = m_hSmallIcon;
566 571
567 if (!::RegisterClassW(&wc)) 572 if (!::RegisterClassExW(&wc))
568 { 573 {
569 ExitWithLastError(hr, "Failed to register window."); 574 ExitWithLastError(hr, "Failed to register window.");
570 } 575 }
@@ -601,6 +606,18 @@ private:
601 ::UnregisterClassW(WIXIUIBA_WINDOW_CLASS, m_hModule); 606 ::UnregisterClassW(WIXIUIBA_WINDOW_CLASS, m_hModule);
602 m_fRegistered = FALSE; 607 m_fRegistered = FALSE;
603 } 608 }
609
610 if (m_hIcon)
611 {
612 ::DestroyIcon(m_hIcon);
613 m_hIcon = NULL;
614 }
615
616 if (m_hSmallIcon)
617 {
618 ::DestroyIcon(m_hSmallIcon);
619 m_hSmallIcon = NULL;
620 }
604 } 621 }
605 622
606 // 623 //
@@ -807,6 +824,8 @@ public:
807 m_sczFailedMessage = NULL; 824 m_sczFailedMessage = NULL;
808 825
809 m_hUiThread = NULL; 826 m_hUiThread = NULL;
827 m_hIcon = NULL;
828 m_hSmallIcon = NULL;
810 m_fRegistered = FALSE; 829 m_fRegistered = FALSE;
811 m_hWnd = NULL; 830 m_hWnd = NULL;
812 831
@@ -847,6 +866,8 @@ private:
847 LPWSTR m_sczConfirmCloseMessage; 866 LPWSTR m_sczConfirmCloseMessage;
848 867
849 HANDLE m_hUiThread; 868 HANDLE m_hUiThread;
869 HICON m_hIcon;
870 HICON m_hSmallIcon;
850 BOOL m_fRegistered; 871 BOOL m_fRegistered;
851 HWND m_hWnd; 872 HWND m_hWnd;
852 873
diff --git a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp
index 59b2d8de..c1e8b2b3 100644
--- a/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp
+++ b/src/ext/Bal/stdbas/WixStandardBootstrapperApplication.cpp
@@ -614,7 +614,7 @@ public: // IBootstrapperApplication
614 { 614 {
615 // After restart we need to finish the dependency registration for our package so allow the package 615 // After restart we need to finish the dependency registration for our package so allow the package
616 // to go present. 616 // to go present.
617 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzPackageId, -1, m_sczAfterForcedRestartPackage, -1)) 617 if (CSTR_EQUAL == ::CompareStringOrdinal(wzPackageId, -1, m_sczAfterForcedRestartPackage, -1, FALSE))
618 { 618 {
619 // Do not allow a repair because that could put us in a perpetual restart loop. 619 // Do not allow a repair because that could put us in a perpetual restart loop.
620 if (BOOTSTRAPPER_REQUEST_STATE_REPAIR == *pRequestState) 620 if (BOOTSTRAPPER_REQUEST_STATE_REPAIR == *pRequestState)
@@ -1231,34 +1231,52 @@ public: // IBootstrapperApplication
1231 __inout int* pResult 1231 __inout int* pResult
1232 ) 1232 )
1233 { 1233 {
1234 HRESULT hr = S_OK;
1235 BAL_INFO_PACKAGE* pPackage = NULL;
1236 BOOL fShowFilesInUseDialog = TRUE;
1234 1237
1235 if (!m_fShowingInternalUiThisPackage && wzPackageId && *wzPackageId) 1238 if (!m_fShowingInternalUiThisPackage && wzPackageId && *wzPackageId)
1236 { 1239 {
1237 BalLog(BOOTSTRAPPER_LOG_LEVEL_VERBOSE, "Package %ls has %d applications holding files in use.", wzPackageId, cFiles); 1240 BalLog(BOOTSTRAPPER_LOG_LEVEL_VERBOSE, "Package %ls has %d applications holding files in use.", wzPackageId, cFiles);
1238 1241
1239 switch (source) 1242 hr = BalInfoFindPackageById(&m_Bundle.packages, wzPackageId, &pPackage);
1243 if (SUCCEEDED(hr) && pPackage->sczDisplayFilesInUseDialogCondition)
1240 { 1244 {
1241 case BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI: 1245 hr = BalEvaluateCondition(pPackage->sczDisplayFilesInUseDialogCondition, &fShowFilesInUseDialog);
1242 if (m_fShowStandardFilesInUse) 1246 BalExitOnFailure(hr, "Failed to evaluate condition for package '%ls': %ls", wzPackageId, pPackage->sczDisplayFilesInUseDialogCondition);
1243 { 1247 }
1244 return ShowMsiFilesInUse(cFiles, rgwzFiles, source, pResult); 1248
1245 } 1249 if (fShowFilesInUseDialog)
1246 break; 1250 {
1247 case BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI_RM: 1251 switch (source)
1248 if (m_fShowRMFilesInUse)
1249 {
1250 return ShowMsiFilesInUse(cFiles, rgwzFiles, source, pResult);
1251 }
1252 break;
1253 case BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX:
1254 if (m_fShowNetfxFilesInUse)
1255 { 1252 {
1256 return ShowNetfxFilesInUse(cFiles, rgwzFiles, pResult); 1253 case BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI:
1254 if (m_fShowStandardFilesInUse)
1255 {
1256 return ShowMsiFilesInUse(cFiles, rgwzFiles, source, pResult);
1257 }
1258 break;
1259 case BOOTSTRAPPER_FILES_IN_USE_TYPE_MSI_RM:
1260 if (m_fShowRMFilesInUse)
1261 {
1262 return ShowMsiFilesInUse(cFiles, rgwzFiles, source, pResult);
1263 }
1264 break;
1265 case BOOTSTRAPPER_FILES_IN_USE_TYPE_NETFX:
1266 if (m_fShowNetfxFilesInUse)
1267 {
1268 return ShowNetfxFilesInUse(cFiles, rgwzFiles, pResult);
1269 }
1270 break;
1257 } 1271 }
1258 break; 1272 }
1273 else
1274 {
1275 *pResult = IDIGNORE;
1259 } 1276 }
1260 } 1277 }
1261 1278
1279 LExit:
1262 return __super::OnExecuteFilesInUse(wzPackageId, cFiles, rgwzFiles, nRecommendation, source, pResult); 1280 return __super::OnExecuteFilesInUse(wzPackageId, cFiles, rgwzFiles, nRecommendation, source, pResult);
1263 } 1281 }
1264 1282
@@ -2928,7 +2946,7 @@ private:
2928 2946
2929 if (argv[i][0] == L'-' || argv[i][0] == L'/') 2947 if (argv[i][0] == L'-' || argv[i][0] == L'/')
2930 { 2948 {
2931 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"lang", -1)) 2949 if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"lang", -1, TRUE))
2932 { 2950 {
2933 if (i + 1 >= argc) 2951 if (i + 1 >= argc)
2934 { 2952 {
@@ -2941,7 +2959,7 @@ private:
2941 hr = StrAllocString(psczLanguage, &argv[i][0], 0); 2959 hr = StrAllocString(psczLanguage, &argv[i][0], 0);
2942 BalExitOnFailure(hr, "Failed to copy language."); 2960 BalExitOnFailure(hr, "Failed to copy language.");
2943 } 2961 }
2944 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"cache", -1)) 2962 else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"cache", -1, TRUE))
2945 { 2963 {
2946 m_fRequestedCacheOnly = TRUE; 2964 m_fRequestedCacheOnly = TRUE;
2947 } 2965 }
@@ -3283,26 +3301,24 @@ private:
3283 HRESULT CreateMainWindow() 3301 HRESULT CreateMainWindow()
3284 { 3302 {
3285 HRESULT hr = S_OK; 3303 HRESULT hr = S_OK;
3286 WNDCLASSW wc = { }; 3304 WNDCLASSEXW wc = { sizeof(WNDCLASSEXW)};
3287 DWORD dwWindowStyle = 0; 3305 DWORD dwWindowStyle = 0;
3288 int x = CW_USEDEFAULT; 3306 int x = CW_USEDEFAULT;
3289 int y = CW_USEDEFAULT; 3307 int y = CW_USEDEFAULT;
3290 POINT ptCursor = { }; 3308 POINT ptCursor = { };
3291 3309
3292 ThemeInitializeWindowClass(m_pTheme, &wc, CWixStandardBootstrapperApplication::WndProc, m_hModule, WIXSTDBA_WINDOW_CLASS); 3310 ThemeInitializeWindowClassEx(m_pTheme, &wc, CWixStandardBootstrapperApplication::WndProc, m_hModule, WIXSTDBA_WINDOW_CLASS);
3293 3311
3294 // If the theme did not provide an icon, try using the icon from the bundle engine. 3312 // If the theme did not provide an icon, try using the icon from the bundle then fallback to the bundle engine.
3295 if (!wc.hIcon) 3313 if (!wc.hIcon)
3296 { 3314 {
3297 HMODULE hBootstrapperEngine = ::GetModuleHandleW(NULL); 3315 LoadBundleIcon(m_hModule, &m_hIcon, &m_hSmallIcon);
3298 if (hBootstrapperEngine) 3316 wc.hIcon = m_hIcon;
3299 { 3317 wc.hIconSm = m_hSmallIcon;
3300 wc.hIcon = ::LoadIconW(hBootstrapperEngine, MAKEINTRESOURCEW(1));
3301 }
3302 } 3318 }
3303 3319
3304 // Register the window class and create the window. 3320 // Register the window class and create the window.
3305 if (!::RegisterClassW(&wc)) 3321 if (!::RegisterClassExW(&wc))
3306 { 3322 {
3307 ExitWithLastError(hr, "Failed to register window."); 3323 ExitWithLastError(hr, "Failed to register window.");
3308 } 3324 }
@@ -3340,7 +3356,6 @@ private:
3340 return hr; 3356 return hr;
3341 } 3357 }
3342 3358
3343
3344 // 3359 //
3345 // InitializeTaskbarButton - initializes taskbar button for progress. 3360 // InitializeTaskbarButton - initializes taskbar button for progress.
3346 // 3361 //
@@ -3379,6 +3394,18 @@ private:
3379 ::UnregisterClassW(WIXSTDBA_WINDOW_CLASS, m_hModule); 3394 ::UnregisterClassW(WIXSTDBA_WINDOW_CLASS, m_hModule);
3380 m_fRegistered = FALSE; 3395 m_fRegistered = FALSE;
3381 } 3396 }
3397
3398 if (m_hIcon)
3399 {
3400 ::DestroyIcon(m_hIcon);
3401 m_hIcon = NULL;
3402 }
3403
3404 if (m_hSmallIcon)
3405 {
3406 ::DestroyIcon(m_hSmallIcon);
3407 m_hSmallIcon = NULL;
3408 }
3382 } 3409 }
3383 3410
3384 3411
@@ -3570,7 +3597,7 @@ private:
3570 for (DWORD iAssignControl = 0; iAssignControl < countof(m_rgInitControls); ++iAssignControl) 3597 for (DWORD iAssignControl = 0; iAssignControl < countof(m_rgInitControls); ++iAssignControl)
3571 { 3598 {
3572 THEME_ASSIGN_CONTROL_ID* pAssignControl = m_rgInitControls + iAssignControl; 3599 THEME_ASSIGN_CONTROL_ID* pAssignControl = m_rgInitControls + iAssignControl;
3573 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, pArgs->pThemeControl->sczName, -1, pAssignControl->wzName, -1)) 3600 if (CSTR_EQUAL == ::CompareStringOrdinal(pArgs->pThemeControl->sczName, -1, pAssignControl->wzName, -1, FALSE))
3574 { 3601 {
3575 if (!pAssignControl->ppControl) 3602 if (!pAssignControl->ppControl)
3576 { 3603 {
@@ -4804,6 +4831,8 @@ public:
4804 m_pTheme = NULL; 4831 m_pTheme = NULL;
4805 memset(m_rgdwPageIds, 0, sizeof(m_rgdwPageIds)); 4832 memset(m_rgdwPageIds, 0, sizeof(m_rgdwPageIds));
4806 m_hUiThread = NULL; 4833 m_hUiThread = NULL;
4834 m_hIcon = NULL;
4835 m_hSmallIcon = NULL;
4807 m_fRegistered = FALSE; 4836 m_fRegistered = FALSE;
4808 m_hWnd = NULL; 4837 m_hWnd = NULL;
4809 4838
@@ -5092,6 +5121,8 @@ private:
5092 THEME_ASSIGN_CONTROL_ID m_rgInitControls[LAST_WIXSTDBA_CONTROL - WIXSTDBA_FIRST_ASSIGN_CONTROL_ID]; 5121 THEME_ASSIGN_CONTROL_ID m_rgInitControls[LAST_WIXSTDBA_CONTROL - WIXSTDBA_FIRST_ASSIGN_CONTROL_ID];
5093 DWORD m_rgdwPageIds[countof(vrgwzPageNames)]; 5122 DWORD m_rgdwPageIds[countof(vrgwzPageNames)];
5094 HANDLE m_hUiThread; 5123 HANDLE m_hUiThread;
5124 HICON m_hIcon;
5125 HICON m_hSmallIcon;
5095 BOOL m_fRegistered; 5126 BOOL m_fRegistered;
5096 HWND m_hWnd; 5127 HWND m_hWnd;
5097 5128
diff --git a/src/ext/Bal/stdbas/precomp.h b/src/ext/Bal/stdbas/precomp.h
index a6c4cfe4..0faf1548 100644
--- a/src/ext/Bal/stdbas/precomp.h
+++ b/src/ext/Bal/stdbas/precomp.h
@@ -42,3 +42,9 @@
42 42
43#include "stdbas.messages.h" 43#include "stdbas.messages.h"
44#include "WixStandardBootstrapperApplication.h" 44#include "WixStandardBootstrapperApplication.h"
45
46HRESULT LoadBundleIcon(
47 __in HMODULE hModule,
48 __out HICON* phIcon,
49 __out HICON* phSmallIcon
50);
diff --git a/src/ext/Bal/stdbas/stdbas.cpp b/src/ext/Bal/stdbas/stdbas.cpp
new file mode 100644
index 00000000..909bdc23
--- /dev/null
+++ b/src/ext/Bal/stdbas/stdbas.cpp
@@ -0,0 +1,50 @@
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#include "precomp.h"
4
5static const LPCWSTR WIX_BUNDLE_ICON_FILENAME = L"WixBundle.ico";
6
7
8//
9// LoadBundleIcon - loads the icon that was (optionally) authored in the bundle otherwise use the one embedded in the bootstrapper application.
10//
11HRESULT LoadBundleIcon(
12 __in HMODULE hModule,
13 __out HICON* phIcon,
14 __out HICON* phSmallIcon
15)
16{
17 HRESULT hr = S_OK;
18 LPWSTR sczIconPath = NULL;
19 int nIconWidth = ::GetSystemMetrics(SM_CXICON);
20 int nIconHeight = ::GetSystemMetrics(SM_CYICON);
21 int nSmallIconWidth = ::GetSystemMetrics(SM_CXSMICON);
22 int nSmallIconHeight = ::GetSystemMetrics(SM_CYSMICON);
23 HICON hIcon = NULL;
24 HICON hSmallIcon = NULL;
25
26 // First look for the optional authored bundle icon.
27 hr = PathRelativeToModule(&sczIconPath, WIX_BUNDLE_ICON_FILENAME, hModule);
28 ExitOnFailure(hr, "Failed to get path to bundle icon: %ls", WIX_BUNDLE_ICON_FILENAME);
29
30 if (FileExistsEx(sczIconPath, NULL))
31 {
32 hIcon = reinterpret_cast<HICON>(::LoadImageW(NULL, sczIconPath, IMAGE_ICON, nIconWidth, nIconHeight, LR_LOADFROMFILE));
33
34 hSmallIcon = reinterpret_cast<HICON>(::LoadImageW(NULL, sczIconPath, IMAGE_ICON, nSmallIconWidth, nSmallIconHeight, LR_LOADFROMFILE));
35 }
36 else // fallback to the first icon resource in the bootstrapper application.
37 {
38 hIcon = reinterpret_cast<HICON>(::LoadImageW(hModule, MAKEINTRESOURCEW(1), IMAGE_ICON, nIconWidth, nIconHeight, LR_DEFAULTCOLOR));
39
40 hSmallIcon = reinterpret_cast<HICON>(::LoadImageW(hModule, MAKEINTRESOURCEW(1), IMAGE_ICON, nSmallIconWidth, nSmallIconHeight, LR_DEFAULTCOLOR));
41 }
42
43 *phIcon = hIcon;
44 *phSmallIcon = hSmallIcon;
45
46LExit:
47 ReleaseStr(sczIconPath);
48
49 return hr;
50}
diff --git a/src/ext/Bal/stdbas/stdbas.vcxproj b/src/ext/Bal/stdbas/stdbas.vcxproj
index 12dbbc61..ba990af7 100644
--- a/src/ext/Bal/stdbas/stdbas.vcxproj
+++ b/src/ext/Bal/stdbas/stdbas.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
@@ -60,6 +60,7 @@
60 <ClCompile Include="precomp.cpp"> 60 <ClCompile Include="precomp.cpp">
61 <PrecompiledHeader>Create</PrecompiledHeader> 61 <PrecompiledHeader>Create</PrecompiledHeader>
62 </ClCompile> 62 </ClCompile>
63 <ClCompile Include="stdbas.cpp" />
63 <ClCompile Include="WixInternalUIBootstrapperApplication.cpp" /> 64 <ClCompile Include="WixInternalUIBootstrapperApplication.cpp" />
64 <ClCompile Include="WixStandardBootstrapperApplication.cpp" /> 65 <ClCompile Include="WixStandardBootstrapperApplication.cpp" />
65 </ItemGroup> 66 </ItemGroup>
@@ -80,4 +81,4 @@ rc.exe -fo "$(OutDir)stdbas.res" "$(IntDir)stdbas.messages.rc"</Command>
80 </ItemGroup> 81 </ItemGroup>
81 82
82 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 83 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
83</Project> 84</Project> \ No newline at end of file
diff --git a/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.filters b/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.filters
index 0b3b60be..b471da9e 100644
--- a/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.filters
+++ b/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.filters
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup> 3 <ItemGroup>
4 <Filter Include="Source Files"> 4 <Filter Include="Source Files">
5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
@@ -42,4 +42,4 @@
42 <Filter>Header Files</Filter> 42 <Filter>Header Files</Filter>
43 </ClInclude> 43 </ClInclude>
44 </ItemGroup> 44 </ItemGroup>
45</Project> \ No newline at end of file 45</Project>
diff --git a/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj b/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj
index c0be8e11..fd9d52c4 100644
--- a/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj
+++ b/src/ext/Bal/test/WixStdFnUnitTest/WixStdFnUnitTest.vcxproj
@@ -2,7 +2,7 @@
2<!-- 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<!-- 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. -->
3 3
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" /> 6 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs
index 6e24ad72..e599b8e2 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/BalExtensionFixture.cs
@@ -1,5 +1,9 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.BootstrapperApplications 7namespace WixToolsetTest.BootstrapperApplications
4{ 8{
5 using System; 9 using System;
@@ -20,7 +24,8 @@ namespace WixToolsetTest.BootstrapperApplications
20 { 24 {
21 var baseFolder = fs.GetFolder(); 25 var baseFolder = fs.GetFolder();
22 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); 26 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
23 var bundleSourceFolder = TestData.Get(@"TestData\WixStdBa"); 27 var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa");
28 var dataFolder = TestData.Get(@"TestData", ".Data");
24 var intermediateFolder = Path.Combine(baseFolder, "obj"); 29 var intermediateFolder = Path.Combine(baseFolder, "obj");
25 var baFolderPath = Path.Combine(baseFolder, "ba"); 30 var baFolderPath = Path.Combine(baseFolder, "ba");
26 var extractFolderPath = Path.Combine(baseFolder, "extract"); 31 var extractFolderPath = Path.Combine(baseFolder, "extract");
@@ -32,6 +37,7 @@ namespace WixToolsetTest.BootstrapperApplications
32 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), 37 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"),
33 "-intermediateFolder", intermediateFolder, 38 "-intermediateFolder", intermediateFolder,
34 "-bindpath", Path.Combine(bundleSourceFolder, "data"), 39 "-bindpath", Path.Combine(bundleSourceFolder, "data"),
40 "-bindpath", dataFolder,
35 "-o", bundleFile, 41 "-o", bundleFile,
36 }); 42 });
37 compileResult.AssertSuccess(); 43 compileResult.AssertSuccess();
@@ -52,6 +58,46 @@ namespace WixToolsetTest.BootstrapperApplications
52 } 58 }
53 59
54 [TestMethod] 60 [TestMethod]
61 public void CanBuildUsingDisplayFilesInUseDialogCondition()
62 {
63 using (var fs = new DisposableFileSystem())
64 {
65 var baseFolder = fs.GetFolder();
66 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
67 var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa");
68 var dataFolder = TestData.Get(@"TestData", ".Data");
69 var intermediateFolder = Path.Combine(baseFolder, "obj");
70 var baFolderPath = Path.Combine(baseFolder, "ba");
71 var extractFolderPath = Path.Combine(baseFolder, "extract");
72
73 var compileResult = WixRunner.Execute(new[]
74 {
75 "build",
76 Path.Combine(bundleSourceFolder, "DisplayFilesInUseDialogConditionBundle.wxs"),
77 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"),
78 "-intermediateFolder", intermediateFolder,
79 "-bindpath", Path.Combine(bundleSourceFolder, "data"),
80 "-bindpath", dataFolder,
81 "-o", bundleFile,
82 });
83 compileResult.AssertSuccess();
84
85 Assert.IsTrue(File.Exists(bundleFile));
86
87 var extractResult = BundleExtractor.ExtractBAContainer(null, bundleFile, baFolderPath, extractFolderPath);
88 extractResult.AssertSuccess();
89
90 var balPackageInfos = extractResult.GetBADataTestXmlLines("/ba:BootstrapperApplicationData/ba:WixBalPackageInfo");
91 WixAssert.CompareLineByLine(new string[]
92 {
93 "<WixBalPackageInfo PackageId='test.msi' DisplayFilesInUseDialogCondition='1' />",
94 }, balPackageInfos);
95
96 Assert.IsTrue(File.Exists(Path.Combine(baFolderPath, "thm.wxl")));
97 }
98 }
99
100 [TestMethod]
55 public void CanBuildUsingBootstrapperApplicationId() 101 public void CanBuildUsingBootstrapperApplicationId()
56 { 102 {
57 using (var fs = new DisposableFileSystem()) 103 using (var fs = new DisposableFileSystem())
@@ -59,6 +105,7 @@ namespace WixToolsetTest.BootstrapperApplications
59 var baseFolder = fs.GetFolder(); 105 var baseFolder = fs.GetFolder();
60 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); 106 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
61 var bundleSourceFolder = TestData.Get("TestData", "WixStdBa"); 107 var bundleSourceFolder = TestData.Get("TestData", "WixStdBa");
108 var dataFolder = TestData.Get(@"TestData", ".Data");
62 var intermediateFolder = Path.Combine(baseFolder, "obj"); 109 var intermediateFolder = Path.Combine(baseFolder, "obj");
63 var baFolderPath = Path.Combine(baseFolder, "ba"); 110 var baFolderPath = Path.Combine(baseFolder, "ba");
64 var extractFolderPath = Path.Combine(baseFolder, "extract"); 111 var extractFolderPath = Path.Combine(baseFolder, "extract");
@@ -70,6 +117,7 @@ namespace WixToolsetTest.BootstrapperApplications
70 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), 117 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"),
71 "-intermediateFolder", intermediateFolder, 118 "-intermediateFolder", intermediateFolder,
72 "-bindpath", Path.Combine(bundleSourceFolder, "data"), 119 "-bindpath", Path.Combine(bundleSourceFolder, "data"),
120 "-bindpath", dataFolder,
73 "-o", bundleFile, 121 "-o", bundleFile,
74 }); 122 });
75 compileResult.AssertSuccess(); 123 compileResult.AssertSuccess();
@@ -99,7 +147,8 @@ namespace WixToolsetTest.BootstrapperApplications
99 { 147 {
100 var baseFolder = fs.GetFolder(); 148 var baseFolder = fs.GetFolder();
101 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); 149 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
102 var bundleSourceFolder = TestData.Get(@"TestData\Overridable"); 150 var bundleSourceFolder = TestData.Get(@"TestData", "Overridable");
151 var dataFolder = TestData.Get(@"TestData", ".Data");
103 var intermediateFolder = Path.Combine(baseFolder, "obj"); 152 var intermediateFolder = Path.Combine(baseFolder, "obj");
104 var baFolderPath = Path.Combine(baseFolder, "ba"); 153 var baFolderPath = Path.Combine(baseFolder, "ba");
105 var extractFolderPath = Path.Combine(baseFolder, "extract"); 154 var extractFolderPath = Path.Combine(baseFolder, "extract");
@@ -110,6 +159,7 @@ namespace WixToolsetTest.BootstrapperApplications
110 Path.Combine(bundleSourceFolder, "Bundle.wxs"), 159 Path.Combine(bundleSourceFolder, "Bundle.wxs"),
111 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), 160 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"),
112 "-intermediateFolder", intermediateFolder, 161 "-intermediateFolder", intermediateFolder,
162 "-bindpath", dataFolder,
113 "-o", bundleFile, 163 "-o", bundleFile,
114 }); 164 });
115 compileResult.AssertSuccess(); 165 compileResult.AssertSuccess();
@@ -140,7 +190,8 @@ namespace WixToolsetTest.BootstrapperApplications
140 { 190 {
141 var baseFolder = fs.GetFolder(); 191 var baseFolder = fs.GetFolder();
142 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe"); 192 var bundleFile = Path.Combine(baseFolder, "bin", "test.exe");
143 var bundleSourceFolder = TestData.Get(@"TestData\WixStdBa"); 193 var bundleSourceFolder = TestData.Get(@"TestData", "WixStdBa");
194 var dataFolder = TestData.Get(@"TestData", ".Data");
144 var intermediateFolder = Path.Combine(baseFolder, "obj"); 195 var intermediateFolder = Path.Combine(baseFolder, "obj");
145 196
146 var compileResult = WixRunner.Execute(new[] 197 var compileResult = WixRunner.Execute(new[]
@@ -149,6 +200,7 @@ namespace WixToolsetTest.BootstrapperApplications
149 Path.Combine(bundleSourceFolder, "Bundle.wxs"), 200 Path.Combine(bundleSourceFolder, "Bundle.wxs"),
150 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"), 201 "-ext", TestData.Get(@"WixToolset.BootstrapperApplications.wixext.dll"),
151 "-intermediateFolder", intermediateFolder, 202 "-intermediateFolder", intermediateFolder,
203 "-bindpath", dataFolder,
152 "-o", bundleFile, 204 "-o", bundleFile,
153 }); 205 });
154 compileResult.AssertSuccess(); 206 compileResult.AssertSuccess();
@@ -294,6 +346,7 @@ namespace WixToolsetTest.BootstrapperApplications
294 { 346 {
295 "bal:Condition/@Condition contains the built-in Variable 'WixBundleAction', which is not available when it is evaluated. (Unavailable Variables are: 'WixBundleAction'.). Rewrite the condition to avoid Variables that are never valid during its evaluation.", 347 "bal:Condition/@Condition contains the built-in Variable 'WixBundleAction', which is not available when it is evaluated. (Unavailable Variables are: 'WixBundleAction'.). Rewrite the condition to avoid Variables that are never valid during its evaluation.",
296 "Overridable variable 'TEST1' collides with 'Test1' with Bundle/@CommandLineVariables value 'caseInsensitive'.", 348 "Overridable variable 'TEST1' collides with 'Test1' with Bundle/@CommandLineVariables value 'caseInsensitive'.",
349 "The *Package/@bal:DisplayFilesInUseDialogCondition attribute's value '=' is not a valid bundle condition.",
297 "The *Package/@bal:DisplayInternalUICondition attribute's value '=' is not a valid bundle condition.", 350 "The *Package/@bal:DisplayInternalUICondition attribute's value '=' is not a valid bundle condition.",
298 "The location of the Variable related to the previous error.", 351 "The location of the Variable related to the previous error.",
299 }, messages.ToArray()); 352 }, messages.ToArray());
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/InternalUIBAFixture.cs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/InternalUIBAFixture.cs
index 72e31540..7b4d00fc 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/InternalUIBAFixture.cs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/InternalUIBAFixture.cs
@@ -168,6 +168,7 @@ namespace WixToolsetTest.BootstrapperApplications
168 "WixInternalUIBootstrapperApplication does not support the value of 'force' for Cache on prereq packages. Prereq packages are only cached when they need to be installed.", 168 "WixInternalUIBootstrapperApplication does not support the value of 'force' for Cache on prereq packages. Prereq packages are only cached when they need to be installed.",
169 "WixInternalUIBootstrapperApplication ignores InstallCondition for the primary package so that the MSI UI is always shown.", 169 "WixInternalUIBootstrapperApplication ignores InstallCondition for the primary package so that the MSI UI is always shown.",
170 "WixInternalUIBootstrapperApplication ignores DisplayInternalUICondition for the primary package so that the MSI UI is always shown.", 170 "WixInternalUIBootstrapperApplication ignores DisplayInternalUICondition for the primary package so that the MSI UI is always shown.",
171 "WixInternalUIBootstrapperApplication ignores DisplayFilesInUseDialogCondition for the primary package so that the MSI UI is always shown.",
171 "When using WixInternalUIBootstrapperApplication, all prereq packages should be before the primary package in the chain. The prereq packages are always installed before the primary package.", 172 "When using WixInternalUIBootstrapperApplication, all prereq packages should be before the primary package in the chain. The prereq packages are always installed before the primary package.",
172 }, compileResult.Messages.Select(m => m.ToString()).ToArray()); 173 }, compileResult.Messages.Select(m => m.ToString()).ToArray());
173 174
@@ -181,7 +182,7 @@ namespace WixToolsetTest.BootstrapperApplications
181 var balPackageInfos = extractResult.GetBADataTestXmlLines("/ba:BootstrapperApplicationData/ba:WixBalPackageInfo"); 182 var balPackageInfos = extractResult.GetBADataTestXmlLines("/ba:BootstrapperApplicationData/ba:WixBalPackageInfo");
182 WixAssert.CompareLineByLine(new string[] 183 WixAssert.CompareLineByLine(new string[]
183 { 184 {
184 "<WixBalPackageInfo PackageId='test.msi' DisplayInternalUICondition='DISPLAYTEST' PrimaryPackageType='default' />", 185 "<WixBalPackageInfo PackageId='test.msi' DisplayInternalUICondition='DISPLAYTEST' DisplayFilesInUseDialogCondition='DISPLAYTEST' PrimaryPackageType='default' />",
185 }, balPackageInfos); 186 }, balPackageInfos);
186 187
187 var mbaPrereqInfos = extractResult.GetBADataTestXmlLines("/ba:BootstrapperApplicationData/ba:WixPrereqInformation"); 188 var mbaPrereqInfos = extractResult.GetBADataTestXmlLines("/ba:BootstrapperApplicationData/ba:WixPrereqInformation");
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico
new file mode 100644
index 00000000..906ce324
--- /dev/null
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/.Data/test.ico
Binary files differ
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/Overridable/WrongCaseBundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/Overridable/WrongCaseBundle.wxs
index 67dfc589..33b2d64c 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/Overridable/WrongCaseBundle.wxs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/Overridable/WrongCaseBundle.wxs
@@ -9,7 +9,7 @@
9 <Variable Name="TEST1" bal:Overridable="yes" /> 9 <Variable Name="TEST1" bal:Overridable="yes" />
10 <Chain> 10 <Chain>
11 <ExePackage Permanent="yes" DetectCondition="none" SourceFile="runtimes\win-x86\native\wixnative.exe" /> 11 <ExePackage Permanent="yes" DetectCondition="none" SourceFile="runtimes\win-x86\native\wixnative.exe" />
12 <MsiPackage SourceFile="test.msi" bal:DisplayInternalUICondition="!(loc.NonsensePlanCondition)" /> 12 <MsiPackage SourceFile="test.msi" bal:DisplayInternalUICondition="!(loc.NonsensePlanCondition)" bal:DisplayFilesInUseDialogCondition="!(loc.NonsensePlanCondition)" />
13 </Chain> 13 </Chain>
14 <bal:Condition Condition="!(loc.NonsenseDetectCondition)" Message="Unsupported" /> 14 <bal:Condition Condition="!(loc.NonsenseDetectCondition)" Message="Unsupported" />
15 </Bundle> 15 </Bundle>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixIuiBa/IuibaWarnings.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixIuiBa/IuibaWarnings.wxs
index 2cf9787d..9c9aa0f8 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixIuiBa/IuibaWarnings.wxs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixIuiBa/IuibaWarnings.wxs
@@ -6,7 +6,7 @@
6 <bal:WixInternalUIBootstrapperApplication /> 6 <bal:WixInternalUIBootstrapperApplication />
7 </BootstrapperApplication> 7 </BootstrapperApplication>
8 <Chain> 8 <Chain>
9 <MsiPackage SourceFile="test.msi" InstallCondition="INSTALLTEST" bal:DisplayInternalUICondition="DISPLAYTEST" /> 9 <MsiPackage SourceFile="test.msi" InstallCondition="INSTALLTEST" bal:DisplayInternalUICondition="DISPLAYTEST" bal:DisplayFilesInUseDialogCondition="DISPLAYTEST" />
10 <ExePackage Permanent="yes" DetectCondition="none" SourceFile="runtimes\win-x86\native\wixnative.exe" Cache="force" /> 10 <ExePackage Permanent="yes" DetectCondition="none" SourceFile="runtimes\win-x86\native\wixnative.exe" Cache="force" />
11 </Chain> 11 </Chain>
12 </Bundle> 12 </Bundle>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs
index e1945f53..44c15999 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/BootstrapperApplicationId.wxs
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> 4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"
5 IconSourceFile="test.ico">
5 <BootstrapperApplication Id="Custom"> 6 <BootstrapperApplication Id="Custom">
6 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> 7 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
7 </BootstrapperApplication> 8 </BootstrapperApplication>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs
index c17b53ff..e0346900 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/Bundle.wxs
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> 4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"
5 IconSourceFile="test.ico">
5 <BootstrapperApplication> 6 <BootstrapperApplication>
6 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> 7 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
7 </BootstrapperApplication> 8 </BootstrapperApplication>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs
new file mode 100644
index 00000000..098d6f83
--- /dev/null
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayFilesInUseDialogConditionBundle.wxs
@@ -0,0 +1,13 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"
5 IconSourceFile="test.ico">
6 <BootstrapperApplication>
7 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
8 </BootstrapperApplication>
9 <Chain>
10 <MsiPackage SourceFile="test.msi" bal:DisplayFilesInUseDialogCondition="1" />
11 </Chain>
12 </Bundle>
13</Wix>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs
index f08cfe6a..2dea66fd 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/TestData/WixStdBa/DisplayInternalUIConditionBundle.wxs
@@ -1,7 +1,8 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 3 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"> 4 <Bundle Name="WixStdBa" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="75D5D534-E177-4689-AAE9-CAC1C39002C2"
5 IconSourceFile="test.ico">
5 <BootstrapperApplication> 6 <BootstrapperApplication>
6 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" /> 7 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
7 </BootstrapperApplication> 8 </BootstrapperApplication>
diff --git a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj
index 6a9b5856..b2672472 100644
--- a/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj
+++ b/src/ext/Bal/test/WixToolsetTest.BootstrapperApplications/WixToolsetTest.BootstrapperApplications.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/EarliestCoreBundleSCD.wixproj b/src/ext/Bal/test/examples/EarliestCoreBundleSCD/EarliestCoreBundleSCD.wixproj
index 1179bea7..aea77d1b 100644
--- a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/EarliestCoreBundleSCD.wixproj
+++ b/src/ext/Bal/test/examples/EarliestCoreBundleSCD/EarliestCoreBundleSCD.wixproj
@@ -1,14 +1,6 @@
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<Project Sdk="WixToolset.Sdk"> 2<Project Sdk="WixToolset.Sdk">
3 <ItemGroup> 3 <ItemGroup>
4 <BindPath Include="$(OutputPath)publish\Example.EarliestCoreMBA\scd" /> 4 <BindPath Include="$(OutputPath)publish\Example.EarliestCoreMBA\scd" BindName="ba.payloads" />
5 <HarvestDirectory Include="$(OutputPath)publish\Example.EarliestCoreMBA\scd">
6 <DirectoryRefId>publish.Example.EarliestCoreMBA.scd</DirectoryRefId>
7 <Transforms>ba.xslt</Transforms>
8 </HarvestDirectory>
9 </ItemGroup>
10
11 <ItemGroup>
12 <PackageReference Include="WixToolset.Heat" />
13 </ItemGroup> 5 </ItemGroup>
14</Project> 6</Project>
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/SelfContainedBundle.wxs b/src/ext/Bal/test/examples/EarliestCoreBundleSCD/SelfContainedBundle.wxs
index 38a167f1..68b697e7 100644
--- a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/SelfContainedBundle.wxs
+++ b/src/ext/Bal/test/examples/EarliestCoreBundleSCD/SelfContainedBundle.wxs
@@ -1,9 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
2 <Bundle Name="SCDEarliestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533"> 2 <Bundle Name="SCDEarliestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533">
3 <BootstrapperApplication SourceFile="Example.EarliestCoreMBA.exe"> 3 <BootstrapperApplication SourceFile="!(bindpath.ba.payloads)\Example.EarliestCoreMBA.exe">
4 <!-- <bal:WixDotNetCoreBootstrapperApplicationHost SelfContainedDeployment="yes" /> --> 4 <Payloads Include="!(bindpath.ba.payloads)\**">
5 <PayloadGroupRef Id="publish.Example.EarliestCoreMBA.scd" /> 5 <Exclude Files="!(bindpath.ba.payloads)\Example.EarliestCoreMBA.exe" />
6 </Payloads>
6 </BootstrapperApplication> 7 </BootstrapperApplication>
8
7 <Chain> 9 <Chain>
8 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" /> 10 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" />
9 </Chain> 11 </Chain>
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/ba.xslt b/src/ext/Bal/test/examples/EarliestCoreBundleSCD/ba.xslt
deleted file mode 100644
index d30b2564..00000000
--- a/src/ext/Bal/test/examples/EarliestCoreBundleSCD/ba.xslt
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
4 xmlns:wix="http://wixtoolset.org/schemas/v4/wxs"
5>
6 <xsl:output method="xml" indent="yes"/>
7
8 <xsl:template match="@* | node()">
9 <xsl:copy>
10 <xsl:apply-templates select="@* | node()"/>
11 </xsl:copy>
12 </xsl:template>
13
14 <xsl:template match="wix:Payload[@SourceFile='SourceDir\Example.EarliestCoreMBA.exe']" />
15</xsl:stylesheet>
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/EarliestCoreBundleTrimmedSCD.wixproj b/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/EarliestCoreBundleTrimmedSCD.wixproj
index f9926550..5475022c 100644
--- a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/EarliestCoreBundleTrimmedSCD.wixproj
+++ b/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/EarliestCoreBundleTrimmedSCD.wixproj
@@ -1,14 +1,6 @@
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<Project Sdk="WixToolset.Sdk"> 2<Project Sdk="WixToolset.Sdk">
3 <ItemGroup> 3 <ItemGroup>
4 <BindInputPaths Include="$(OutputPath)publish\Example.EarliestCoreMBA\trimmedscd" /> 4 <BindInputPaths Include="$(OutputPath)publish\Example.EarliestCoreMBA\trimmedscd" BindName="ba.payloads" />
5 <HarvestDirectory Include="$(OutputPath)publish\Example.EarliestCoreMBA\trimmedscd">
6 <DirectoryRefId>publish.Example.EarliestCoreMBA.trimmedscd</DirectoryRefId>
7 <Transforms>ba.xslt</Transforms>
8 </HarvestDirectory>
9 </ItemGroup>
10
11 <ItemGroup>
12 <PackageReference Include="WixToolset.Heat" />
13 </ItemGroup> 5 </ItemGroup>
14</Project> 6</Project>
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs b/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
index bf4ad6e3..8895b279 100644
--- a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
+++ b/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
@@ -1,9 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
2 <Bundle Name="TrimmedSCDEarliestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533"> 2 <Bundle Name="TrimmedSCDEarliestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533">
3 <BootstrapperApplication SourceFile="SourceDir\Example.EarliestCoreMBA.exe" > 3 <BootstrapperApplication SourceFile="!(bindpath.ba.payloads)\Example.EarliestCoreMBA.exe" >
4 <!-- <bal:WixDotNetCoreBootstrapperApplicationHost SelfContainedDeployment="yes" /> --> 4 <Payloads Include="!(bindpath.ba.payloads)\**">
5 <PayloadGroupRef Id="publish.Example.EarliestCoreMBA.trimmedscd" /> 5 <Exclude Files="!(bindpath.ba.payloads)\Example.EarliestCoreMBA.exe" />
6 </Payloads>
6 </BootstrapperApplication> 7 </BootstrapperApplication>
8
7 <Chain> 9 <Chain>
8 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" /> 10 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" />
9 </Chain> 11 </Chain>
diff --git a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/ba.xslt b/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/ba.xslt
deleted file mode 100644
index d30b2564..00000000
--- a/src/ext/Bal/test/examples/EarliestCoreBundleTrimmedSCD/ba.xslt
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
4 xmlns:wix="http://wixtoolset.org/schemas/v4/wxs"
5>
6 <xsl:output method="xml" indent="yes"/>
7
8 <xsl:template match="@* | node()">
9 <xsl:copy>
10 <xsl:apply-templates select="@* | node()"/>
11 </xsl:copy>
12 </xsl:template>
13
14 <xsl:template match="wix:Payload[@SourceFile='SourceDir\Example.EarliestCoreMBA.exe']" />
15</xsl:stylesheet>
diff --git a/src/ext/Bal/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj b/src/ext/Bal/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
index 93ceb7d4..73428ece 100644
--- a/src/ext/Bal/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
+++ b/src/ext/Bal/test/examples/EarliestCoreMBA/Example.EarliestCoreMBA.csproj
@@ -1,7 +1,7 @@
1<Project Sdk="Microsoft.NET.Sdk"> 1<Project Sdk="Microsoft.NET.Sdk">
2 2
3 <PropertyGroup> 3 <PropertyGroup>
4 <TargetFramework>net6.0</TargetFramework> 4 <TargetFramework>net8.0</TargetFramework>
5 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers> 5 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
6 <OutputType>WinExe</OutputType> 6 <OutputType>WinExe</OutputType>
7 <DebugType>embedded</DebugType> 7 <DebugType>embedded</DebugType>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleSCD/LatestCoreBundleSCD.wixproj b/src/ext/Bal/test/examples/LatestCoreBundleSCD/LatestCoreBundleSCD.wixproj
index 048e3c97..73582984 100644
--- a/src/ext/Bal/test/examples/LatestCoreBundleSCD/LatestCoreBundleSCD.wixproj
+++ b/src/ext/Bal/test/examples/LatestCoreBundleSCD/LatestCoreBundleSCD.wixproj
@@ -1,14 +1,6 @@
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<Project Sdk="WixToolset.Sdk"> 2<Project Sdk="WixToolset.Sdk">
3 <ItemGroup> 3 <ItemGroup>
4 <BindInputPaths Include="$(OutputPath)publish\Example.LatestCoreMBA\scd" /> 4 <BindInputPaths Include="$(OutputPath)publish\Example.LatestCoreMBA\scd" BindName="ba.payloads" />
5 <HarvestDirectory Include="$(OutputPath)publish\Example.LatestCoreMBA\scd">
6 <DirectoryRefId>publish.Example.LatestCoreMBA.scd</DirectoryRefId>
7 <Transforms>ba.xslt</Transforms>
8 </HarvestDirectory>
9 </ItemGroup>
10
11 <ItemGroup>
12 <PackageReference Include="WixToolset.Heat" />
13 </ItemGroup> 5 </ItemGroup>
14</Project> 6</Project>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleSCD/SelfContainedBundle.wxs b/src/ext/Bal/test/examples/LatestCoreBundleSCD/SelfContainedBundle.wxs
index 0022b690..1f379b59 100644
--- a/src/ext/Bal/test/examples/LatestCoreBundleSCD/SelfContainedBundle.wxs
+++ b/src/ext/Bal/test/examples/LatestCoreBundleSCD/SelfContainedBundle.wxs
@@ -1,9 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
2 <Bundle Name="SCDLatestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533"> 2 <Bundle Name="SCDLatestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533">
3 <BootstrapperApplication SourceFile="Example.LatestCoreMBA.exe"> 3 <BootstrapperApplication SourceFile="!(bindpath.ba.payloads)\Example.LatestCoreMBA.exe">
4 <!-- <bal:WixDotNetCoreBootstrapperApplicationHost SelfContainedDeployment="yes" /> --> 4 <Payloads Include="!(bindpath.ba.payloads)\**">
5 <PayloadGroupRef Id="publish.Example.LatestCoreMBA.scd" /> 5 <Exclude Files="!(bindpath.ba.payloads)\Example.LatestCoreMBA.exe" />
6 </Payloads>
6 </BootstrapperApplication> 7 </BootstrapperApplication>
8
7 <Chain> 9 <Chain>
8 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" /> 10 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" />
9 </Chain> 11 </Chain>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleSCD/ba.xslt b/src/ext/Bal/test/examples/LatestCoreBundleSCD/ba.xslt
deleted file mode 100644
index f606296e..00000000
--- a/src/ext/Bal/test/examples/LatestCoreBundleSCD/ba.xslt
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
4 xmlns:wix="http://wixtoolset.org/schemas/v4/wxs"
5>
6 <xsl:output method="xml" indent="yes"/>
7
8 <xsl:template match="@* | node()">
9 <xsl:copy>
10 <xsl:apply-templates select="@* | node()"/>
11 </xsl:copy>
12 </xsl:template>
13
14 <xsl:template match="wix:Payload[@SourceFile='SourceDir\Example.LatestCoreMBA.exe']" />
15</xsl:stylesheet>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/LatestCoreBundleTrimmedSCD.wixproj b/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/LatestCoreBundleTrimmedSCD.wixproj
index 056bf2bb..532f09b4 100644
--- a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/LatestCoreBundleTrimmedSCD.wixproj
+++ b/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/LatestCoreBundleTrimmedSCD.wixproj
@@ -1,14 +1,6 @@
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<Project Sdk="WixToolset.Sdk"> 2<Project Sdk="WixToolset.Sdk">
3 <ItemGroup> 3 <ItemGroup>
4 <BindInputPaths Include="$(OutputPath)publish\Example.LatestCoreMBA\trimmedscd" /> 4 <BindInputPaths Include="$(OutputPath)publish\Example.LatestCoreMBA\trimmedscd" BindName="ba.payloads" />
5 <HarvestDirectory Include="$(OutputPath)publish\Example.LatestCoreMBA\trimmedscd">
6 <DirectoryRefId>publish.Example.LatestCoreMBA.trimmedscd</DirectoryRefId>
7 <Transforms>ba.xslt</Transforms>
8 </HarvestDirectory>
9 </ItemGroup>
10
11 <ItemGroup>
12 <PackageReference Include="WixToolset.Heat" />
13 </ItemGroup> 5 </ItemGroup>
14</Project> 6</Project>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs b/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
index 322a27a3..cd32628a 100644
--- a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
+++ b/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/TrimmedSelfContainedBundle.wxs
@@ -1,9 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
2 <Bundle Name="TrimmedSCDLatestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533"> 2 <Bundle Name="TrimmedSCDLatestCoreMBA" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="5CE5B5C7-4B6B-4B95-B297-731F1F956533">
3 <BootstrapperApplication SourceFile="Example.LatestCoreMBA.exe"> 3 <BootstrapperApplication SourceFile="!(bindpath.ba.payloads)\Example.LatestCoreMBA.exe">
4 <!-- <bal:WixDotNetCoreBootstrapperApplicationHost SelfContainedDeployment="yes" /> --> 4 <Payloads Include="!(bindpath.ba.payloads)\**">
5 <PayloadGroupRef Id="publish.Example.LatestCoreMBA.trimmedscd" /> 5 <Exclude Files="!(bindpath.ba.payloads)\Example.LatestCoreMBA.exe" />
6 </Payloads>
6 </BootstrapperApplication> 7 </BootstrapperApplication>
8
7 <Chain> 9 <Chain>
8 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" /> 10 <ExePackage DetectCondition="none" UninstallArguments="-foo" SourceFile="..\.data\notanexe.exe" PerMachine="yes" />
9 </Chain> 11 </Chain>
diff --git a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/ba.xslt b/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/ba.xslt
deleted file mode 100644
index f606296e..00000000
--- a/src/ext/Bal/test/examples/LatestCoreBundleTrimmedSCD/ba.xslt
+++ /dev/null
@@ -1,15 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
4 xmlns:wix="http://wixtoolset.org/schemas/v4/wxs"
5>
6 <xsl:output method="xml" indent="yes"/>
7
8 <xsl:template match="@* | node()">
9 <xsl:copy>
10 <xsl:apply-templates select="@* | node()"/>
11 </xsl:copy>
12 </xsl:template>
13
14 <xsl:template match="wix:Payload[@SourceFile='SourceDir\Example.LatestCoreMBA.exe']" />
15</xsl:stylesheet>
diff --git a/src/ext/Bal/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj b/src/ext/Bal/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
index 96587d26..a6302ad5 100644
--- a/src/ext/Bal/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
+++ b/src/ext/Bal/test/examples/LatestCoreMBA/Example.LatestCoreMBA.csproj
@@ -1,7 +1,7 @@
1<Project Sdk="Microsoft.NET.Sdk"> 1<Project Sdk="Microsoft.NET.Sdk">
2 2
3 <PropertyGroup> 3 <PropertyGroup>
4 <TargetFramework>net6.0</TargetFramework> 4 <TargetFramework>net8.0</TargetFramework>
5 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers> 5 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
6 <OutputType>WinExe</OutputType> 6 <OutputType>WinExe</OutputType>
7 <DebugType>embedded</DebugType> 7 <DebugType>embedded</DebugType>
diff --git a/src/ext/Bal/test/examples/TestEngine/ExampleTestEngine.cpp b/src/ext/Bal/test/examples/TestEngine/ExampleTestEngine.cpp
index fc1938fe..9ad4e91f 100644
--- a/src/ext/Bal/test/examples/TestEngine/ExampleTestEngine.cpp
+++ b/src/ext/Bal/test/examples/TestEngine/ExampleTestEngine.cpp
@@ -19,15 +19,15 @@ int __cdecl wmain(int argc, LPWSTR argv[])
19 { 19 {
20 fShowUsage = TRUE; 20 fShowUsage = TRUE;
21 } 21 }
22 else if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, NORM_IGNORECASE, argv[1], -1, L"reload", -1)) 22 else if (CSTR_EQUAL == ::CompareStringOrdinal(argv[1], -1, L"reload", -1, TRUE))
23 { 23 {
24 hr = RunReloadEngine(argv[2], argv[3]); 24 hr = RunReloadEngine(argv[2], argv[3]);
25 } 25 }
26 else if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, NORM_IGNORECASE, argv[1], -1, L"shutdown", -1)) 26 else if (CSTR_EQUAL == ::CompareStringOrdinal(argv[1], -1, L"shutdown", -1, TRUE))
27 { 27 {
28 hr = RunShutdownEngine(argv[2], argv[3]); 28 hr = RunShutdownEngine(argv[2], argv[3]);
29 } 29 }
30 else if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, NORM_IGNORECASE, argv[1], -1, L"waitforquit", -1)) 30 else if (CSTR_EQUAL == ::CompareStringOrdinal(argv[1], -1, L"waitforquit", -1, TRUE))
31 { 31 {
32 hr = RunWaitForQuitEngine(argv[2], argv[3]); 32 hr = RunWaitForQuitEngine(argv[2], argv[3]);
33 } 33 }
diff --git a/src/ext/Bal/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj b/src/ext/Bal/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
index 37639021..d5a721ec 100644
--- a/src/ext/Bal/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
+++ b/src/ext/Bal/test/examples/WPFCoreMBA/Example.WPFCoreMBA.csproj
@@ -2,7 +2,7 @@
2 2
3 <PropertyGroup> 3 <PropertyGroup>
4 <OutputType>WinExe</OutputType> 4 <OutputType>WinExe</OutputType>
5 <TargetFramework>net6.0-windows</TargetFramework> 5 <TargetFramework>net8.0-windows</TargetFramework>
6 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers> 6 <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
7 <Description>WPF .NET Core MBA</Description> 7 <Description>WPF .NET Core MBA</Description>
8 <UseWPF>true</UseWPF> 8 <UseWPF>true</UseWPF>
diff --git a/src/ext/Bal/test/examples/examples.proj b/src/ext/Bal/test/examples/examples.proj
index c1544766..e439c288 100644
--- a/src/ext/Bal/test/examples/examples.proj
+++ b/src/ext/Bal/test/examples/examples.proj
@@ -34,16 +34,12 @@
34 Condition="'%(CoreMBAProject.SkipFDD)'==''" /> 34 Condition="'%(CoreMBAProject.SkipFDD)'==''" />
35 <Exec Command='dotnet publish -o "%(CoreMBAProject.PublishPath)\scd" -r win-x64 -c $(Configuration) --self-contained true "%(CoreMBAProject.Identity)"' 35 <Exec Command='dotnet publish -o "%(CoreMBAProject.PublishPath)\scd" -r win-x64 -c $(Configuration) --self-contained true "%(CoreMBAProject.Identity)"'
36 Condition="'%(CoreMBAProject.SkipSCD)'==''" /> 36 Condition="'%(CoreMBAProject.SkipSCD)'==''" />
37 <!--
38 Publishing a library is "undefined" (per https://github.com/dotnet/runtime/issues/91535)
39 and is now a build error. This will go away when BAs go out of proc, so not spending a
40 lot of time to keep building trimmed in VS 17.8.
41 -->
42 <Exec Command='dotnet publish -o "%(CoreMBAProject.PublishPath)\trimmedscd" -r win-x64 -c $(Configuration) --self-contained true -p:PublishTrimmed=false -p:TrimMode=%(CoreMBAProject.TrimMode) "%(CoreMBAProject.Identity)"' 37 <Exec Command='dotnet publish -o "%(CoreMBAProject.PublishPath)\trimmedscd" -r win-x64 -c $(Configuration) --self-contained true -p:PublishTrimmed=false -p:TrimMode=%(CoreMBAProject.TrimMode) "%(CoreMBAProject.Identity)"'
43 Condition="'%(CoreMBAProject.TrimMode)'!=''" /> 38 Condition="'%(CoreMBAProject.TrimMode)'!=''" />
44 </Target> 39 </Target>
45 40
46 <ItemGroup> 41 <ItemGroup>
42 <ProjectReference Include="..\..\wixext\WixToolset.BootstrapperApplications.wixext.csproj" />
47 <ProjectReference Include="**\*.wixproj" /> 43 <ProjectReference Include="**\*.wixproj" />
48 </ItemGroup> 44 </ItemGroup>
49</Project> 45</Project>
diff --git a/src/ext/Bal/wixext-backward-compatible/README.md b/src/ext/Bal/wixext-backward-compatible/README.md
new file mode 100644
index 00000000..7c3bf97e
--- /dev/null
+++ b/src/ext/Bal/wixext-backward-compatible/README.md
@@ -0,0 +1,56 @@
1# WixToolset.Bal.wixext - Bootstrapper Applications WiX Toolset Extension
2
3This WiX Extension was renamed. Use `WixToolset.BootstrapperApplications.wixext` instead.
4
5- [WixStandardBootstrapperApplication](https://www.nuget.org/packages/WixToolset.BootstrapperApplications.wixext)
6
7[Web Site][web] | [Documentation][docs] | [Issue Tracker][issues] | [Discussions][discussions]
8
9## Open Source Maintenance Fee
10
11To ensure the long-term sustainability of this project, users of this package who generate revenue must pay an [Open Source Maintenance Fee][osmf]. While the source code is freely available under the terms of the [LICENSE][license], this package and other aspects of the project require [adherence to the Open Source Maintenance Fee EULA][eula].
12
13To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixtoolset).
14
15
16## Getting started
17
18Add the WiX Extension as a PackageReference to your .wixproj:
19
20```
21<Project Sdk="WixToolset.Sdk/6.0.2">
22 <ItemGroup>
23 <PackageReference Include="WixToolset.BootstrapperApplications.wixext" Version="6.0.2" />
24 </ItemGroup>
25</Project>
26```
27
28Then add the namespace and bootstrapper application of choice:
29
30```
31<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
32 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
33 <Bundle BundleId="AcmeCorp.Example" Name="Example Bundle" Version="0.0.0.1" Manufacturer="ACME Corporation">
34 <BootstrapperApplication>
35 <bal:WixStandardBootstrapperApplication LicenseUrl="http://wixtoolset.org/about/license/" Theme="hyperlinkLicense" />
36 </BootstrapperApplication>
37 </Bundle>
38</Wix>
39```
40
41## Additional resources
42
43* [WiX Website][web]
44* [WiX Documentation][docs]
45* [WiX Issue Tracker][issues]
46* [WiX Discussions][discussions]
47
48
49[web]: https://www.firegiant.com/wixtoolset/
50[docs]: https://docs.firegiant.com/wixtoolset/
51[issues]: https://github.com/wixtoolset/issues/issues
52[discussions]: https://github.com/orgs/wixtoolset/discussions
53[sdk]: https://www.nuget.org/packages/WixToolset.Sdk/
54[osmf]: https://opensourcemaintenancefee.org/
55[license]: https://github.com/wixtoolset/wix/blob/main/LICENSE.TXT
56[eula]: https://github.com/wixtoolset/wix/blob/main/OSMFEULA.txt
diff --git a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.csproj b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.csproj
index 91253621..4585efbf 100644
--- a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.csproj
+++ b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.csproj
@@ -5,7 +5,7 @@
5 <Import Project="..\..\WixExt.props" /> 5 <Import Project="..\..\WixExt.props" />
6 6
7 <PropertyGroup> 7 <PropertyGroup>
8 <TargetFramework>net6.0</TargetFramework> 8 <TargetFramework>net8.0</TargetFramework>
9 <IncludeBuildOutput>false</IncludeBuildOutput> 9 <IncludeBuildOutput>false</IncludeBuildOutput>
10 <Title>WiX Toolset BootstrapperApplications extension</Title> 10 <Title>WiX Toolset BootstrapperApplications extension</Title>
11 <Description>WiX Toolset BootstrapperApplications extension</Description> 11 <Description>WiX Toolset BootstrapperApplications extension</Description>
diff --git a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
index 2bebad30..2af1e037 100644
--- a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
+++ b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
@@ -7,6 +7,7 @@
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>icon.png</icon> 9 <icon>icon.png</icon>
10 <readme>README.md</readme>
10 <license type="file">OSMFEULA.txt</license> 11 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>true</requireLicenseAcceptance> 12 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags> 13 <tags>$packageTags$</tags>
@@ -18,6 +19,7 @@
18 <files> 19 <files>
19 <file src="$eulaTxt$" /> 20 <file src="$eulaTxt$" />
20 <file src="$iconPng$" /> 21 <file src="$iconPng$" />
22 <file src="$projectFolder$\README.md" />
21 <file src="$projectFolder$\WixToolset.Bal.wixext.targets" target="build" /> 23 <file src="$projectFolder$\WixToolset.Bal.wixext.targets" target="build" />
22 <file src="WixToolset.BootstrapperApplications.wixext.dll" target="$wixExtensionPackageFolder$" /> 24 <file src="WixToolset.BootstrapperApplications.wixext.dll" target="$wixExtensionPackageFolder$" />
23 </files> 25 </files>
diff --git a/src/ext/Bal/wixext/BalBurnBackendExtension.cs b/src/ext/Bal/wixext/BalBurnBackendExtension.cs
index 82195549..5831bb8a 100644
--- a/src/ext/Bal/wixext/BalBurnBackendExtension.cs
+++ b/src/ext/Bal/wixext/BalBurnBackendExtension.cs
@@ -51,6 +51,11 @@ namespace WixToolset.BootstrapperApplications
51 writer.WriteAttributeString("DisplayInternalUICondition", balPackageInfoSymbol.DisplayInternalUICondition); 51 writer.WriteAttributeString("DisplayInternalUICondition", balPackageInfoSymbol.DisplayInternalUICondition);
52 } 52 }
53 53
54 if (balPackageInfoSymbol.DisplayFilesInUseDialogCondition != null)
55 {
56 writer.WriteAttributeString("DisplayFilesInUseDialogCondition", balPackageInfoSymbol.DisplayFilesInUseDialogCondition);
57 }
58
54 if (balPackageInfoSymbol.PrimaryPackageType != BalPrimaryPackageType.None) 59 if (balPackageInfoSymbol.PrimaryPackageType != BalPrimaryPackageType.None)
55 { 60 {
56 writer.WriteAttributeString("PrimaryPackageType", balPackageInfoSymbol.PrimaryPackageType.ToString().ToLower()); 61 writer.WriteAttributeString("PrimaryPackageType", balPackageInfoSymbol.PrimaryPackageType.ToString().ToLower());
@@ -104,6 +109,7 @@ namespace WixToolset.BootstrapperApplications
104 109
105 this.VerifyBalConditions(section); 110 this.VerifyBalConditions(section);
106 this.VerifyDisplayInternalUICondition(section); 111 this.VerifyDisplayInternalUICondition(section);
112 this.VerifyDisplayFilesInUseDialogCondition(section);
107 this.VerifyOverridableVariables(section); 113 this.VerifyOverridableVariables(section);
108 114
109 var balBaSymbol = section.Symbols.OfType<WixBalBootstrapperApplicationSymbol>().SingleOrDefault(); 115 var balBaSymbol = section.Symbols.OfType<WixBalBootstrapperApplicationSymbol>().SingleOrDefault();
@@ -195,6 +201,17 @@ namespace WixToolset.BootstrapperApplications
195 } 201 }
196 } 202 }
197 203
204 private void VerifyDisplayFilesInUseDialogCondition(IntermediateSection section)
205 {
206 foreach (var balPackageInfoSymbol in section.Symbols.OfType<WixBalPackageInfoSymbol>().ToList())
207 {
208 if (balPackageInfoSymbol.DisplayFilesInUseDialogCondition != null)
209 {
210 this.BackendHelper.ValidateBundleCondition(balPackageInfoSymbol.SourceLineNumbers, "*Package", "bal:DisplayFilesInUseDialogCondition", balPackageInfoSymbol.DisplayFilesInUseDialogCondition, BundleConditionPhase.Plan);
211 }
212 }
213 }
214
198 private void VerifyPrimaryPackages(IntermediateSection section, SourceLineNumber baSourceLineNumbers) 215 private void VerifyPrimaryPackages(IntermediateSection section, SourceLineNumber baSourceLineNumbers)
199 { 216 {
200 WixBalPackageInfoSymbol defaultPrimaryPackage = null; 217 WixBalPackageInfoSymbol defaultPrimaryPackage = null;
@@ -420,6 +437,11 @@ namespace WixToolset.BootstrapperApplications
420 { 437 {
421 this.Messaging.Write(BalWarnings.IuibaPrimaryPackageDisplayInternalUICondition(packageSymbol.SourceLineNumbers)); 438 this.Messaging.Write(BalWarnings.IuibaPrimaryPackageDisplayInternalUICondition(packageSymbol.SourceLineNumbers));
422 } 439 }
440
441 if (balPackageInfoSymbol.DisplayFilesInUseDialogCondition != null)
442 {
443 this.Messaging.Write(BalWarnings.IuibaPrimaryPackageDisplayFilesInUseDialogCondition(packageSymbol.SourceLineNumbers));
444 }
423 } 445 }
424 446
425 private void VerifyOverridableVariables(IntermediateSection section) 447 private void VerifyOverridableVariables(IntermediateSection section)
diff --git a/src/ext/Bal/wixext/BalCompiler.cs b/src/ext/Bal/wixext/BalCompiler.cs
index 35c86233..b7d5f679 100644
--- a/src/ext/Bal/wixext/BalCompiler.cs
+++ b/src/ext/Bal/wixext/BalCompiler.cs
@@ -200,6 +200,20 @@ namespace WixToolset.BootstrapperApplications
200 break; 200 break;
201 } 201 }
202 break; 202 break;
203 case "DisplayFilesInUseDialogCondition":
204 switch (parentElement.Name.LocalName)
205 {
206 case "MsiPackage":
207 case "MspPackage":
208 var displayFilesInUseDialogCondition = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attribute);
209 var packageInfo = this.GetBalPackageInfoSymbol(section, sourceLineNumbers, packageId);
210 packageInfo.DisplayFilesInUseDialogCondition = displayFilesInUseDialogCondition;
211 break;
212 default:
213 this.ParseHelper.UnexpectedAttribute(parentElement, attribute);
214 break;
215 }
216 break;
203 case "PrimaryPackageType": 217 case "PrimaryPackageType":
204 { 218 {
205 var primaryPackageType = BalPrimaryPackageType.None; 219 var primaryPackageType = BalPrimaryPackageType.None;
diff --git a/src/ext/Bal/wixext/BalWarnings.cs b/src/ext/Bal/wixext/BalWarnings.cs
index 8c5d892f..f86837f9 100644
--- a/src/ext/Bal/wixext/BalWarnings.cs
+++ b/src/ext/Bal/wixext/BalWarnings.cs
@@ -23,6 +23,11 @@ namespace WixToolset.BootstrapperApplications
23 return Message(sourceLineNumbers, Ids.IuibaPrimaryPackageDisplayInternalUICondition, "WixInternalUIBootstrapperApplication ignores DisplayInternalUICondition for the primary package so that the MSI UI is always shown."); 23 return Message(sourceLineNumbers, Ids.IuibaPrimaryPackageDisplayInternalUICondition, "WixInternalUIBootstrapperApplication ignores DisplayInternalUICondition for the primary package so that the MSI UI is always shown.");
24 } 24 }
25 25
26 public static Message IuibaPrimaryPackageDisplayFilesInUseDialogCondition(SourceLineNumber sourceLineNumbers)
27 {
28 return Message(sourceLineNumbers, Ids.IuibaPrimaryPackageDisplayFilesInUseDialogCondition, "WixInternalUIBootstrapperApplication ignores DisplayFilesInUseDialogCondition for the primary package so that the MSI UI is always shown.");
29 }
30
26 public static Message IuibaPrimaryPackageInstallCondition(SourceLineNumber sourceLineNumbers) 31 public static Message IuibaPrimaryPackageInstallCondition(SourceLineNumber sourceLineNumbers)
27 { 32 {
28 return Message(sourceLineNumbers, Ids.IuibaPrimaryPackageInstallCondition, "WixInternalUIBootstrapperApplication ignores InstallCondition for the primary package so that the MSI UI is always shown."); 33 return Message(sourceLineNumbers, Ids.IuibaPrimaryPackageInstallCondition, "WixInternalUIBootstrapperApplication ignores InstallCondition for the primary package so that the MSI UI is always shown.");
@@ -56,6 +61,7 @@ namespace WixToolset.BootstrapperApplications
56 IuibaPrimaryPackageDisplayInternalUICondition = 6504, 61 IuibaPrimaryPackageDisplayInternalUICondition = 6504,
57 IuibaPrereqPackageAfterPrimaryPackage = 6505, 62 IuibaPrereqPackageAfterPrimaryPackage = 6505,
58 DeprecatedBAFactoryAssemblyAttribute = 6506, 63 DeprecatedBAFactoryAssemblyAttribute = 6506,
64 IuibaPrimaryPackageDisplayFilesInUseDialogCondition = 6507,
59 } 65 }
60 } 66 }
61} 67}
diff --git a/src/ext/Bal/wixext/Symbols/WixBalPackageInfoSymbol.cs b/src/ext/Bal/wixext/Symbols/WixBalPackageInfoSymbol.cs
index e2636d33..6e90c2b9 100644
--- a/src/ext/Bal/wixext/Symbols/WixBalPackageInfoSymbol.cs
+++ b/src/ext/Bal/wixext/Symbols/WixBalPackageInfoSymbol.cs
@@ -14,6 +14,7 @@ namespace WixToolset.BootstrapperApplications
14 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.PackageId), IntermediateFieldType.String), 14 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.PackageId), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.DisplayInternalUICondition), IntermediateFieldType.String), 15 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.DisplayInternalUICondition), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.PrimaryPackageType), IntermediateFieldType.Number), 16 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.PrimaryPackageType), IntermediateFieldType.Number),
17 new IntermediateFieldDefinition(nameof(WixBalPackageInfoSymbolFields.DisplayFilesInUseDialogCondition), IntermediateFieldType.String),
17 }, 18 },
18 typeof(WixBalPackageInfoSymbol)); 19 typeof(WixBalPackageInfoSymbol));
19 } 20 }
@@ -28,6 +29,7 @@ namespace WixToolset.BootstrapperApplications.Symbols
28 PackageId, 29 PackageId,
29 DisplayInternalUICondition, 30 DisplayInternalUICondition,
30 PrimaryPackageType, 31 PrimaryPackageType,
32 DisplayFilesInUseDialogCondition,
31 } 33 }
32 34
33 public enum BalPrimaryPackageType 35 public enum BalPrimaryPackageType
@@ -68,5 +70,11 @@ namespace WixToolset.BootstrapperApplications.Symbols
68 get => (BalPrimaryPackageType)this.Fields[(int)WixBalPackageInfoSymbolFields.PrimaryPackageType].AsNumber(); 70 get => (BalPrimaryPackageType)this.Fields[(int)WixBalPackageInfoSymbolFields.PrimaryPackageType].AsNumber();
69 set => this.Set((int)WixBalPackageInfoSymbolFields.PrimaryPackageType, (int)value); 71 set => this.Set((int)WixBalPackageInfoSymbolFields.PrimaryPackageType, (int)value);
70 } 72 }
73
74 public string DisplayFilesInUseDialogCondition
75 {
76 get => this.Fields[(int)WixBalPackageInfoSymbolFields.DisplayFilesInUseDialogCondition].AsString();
77 set => this.Set((int)WixBalPackageInfoSymbolFields.DisplayFilesInUseDialogCondition, value);
78 }
71 } 79 }
72} 80}
diff --git a/src/ext/Bal/wixiuiba/wixiuiba.vcxproj b/src/ext/Bal/wixiuiba/wixiuiba.vcxproj
index 8d47c39a..c09b335c 100644
--- a/src/ext/Bal/wixiuiba/wixiuiba.vcxproj
+++ b/src/ext/Bal/wixiuiba/wixiuiba.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Bal/wixprqba/wixprqba.vcxproj b/src/ext/Bal/wixprqba/wixprqba.vcxproj
index 237219b3..5e34274f 100644
--- a/src/ext/Bal/wixprqba/wixprqba.vcxproj
+++ b/src/ext/Bal/wixprqba/wixprqba.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Bal/wixstdba/wixstdba.vcxproj b/src/ext/Bal/wixstdba/wixstdba.vcxproj
index 6abb3d4c..5726b08f 100644
--- a/src/ext/Bal/wixstdba/wixstdba.vcxproj
+++ b/src/ext/Bal/wixstdba/wixstdba.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Bal/wixstdfn/build/WixToolset.WixStandardBootstrapperApplicationFunctionApi.props b/src/ext/Bal/wixstdfn/build/WixToolset.WixStandardBootstrapperApplicationFunctionApi.props
index 7a0b08e6..92caa58c 100644
--- a/src/ext/Bal/wixstdfn/build/WixToolset.WixStandardBootstrapperApplicationFunctionApi.props
+++ b/src/ext/Bal/wixstdfn/build/WixToolset.WixStandardBootstrapperApplicationFunctionApi.props
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemDefinitionGroup> 5 <ItemDefinitionGroup>
6 <ClCompile> 6 <ClCompile>
7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\lib\native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\lib\native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/src/ext/Bal/wixstdfn/wixstdfn.vcxproj b/src/ext/Bal/wixstdfn/wixstdfn.vcxproj
index 8d522ebc..1035a55e 100644
--- a/src/ext/Bal/wixstdfn/wixstdfn.vcxproj
+++ b/src/ext/Bal/wixstdfn/wixstdfn.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/ComPlus/ComPlus.wixext.sln b/src/ext/ComPlus/ComPlus.wixext.sln
deleted file mode 100644
index 6249fef0..00000000
--- a/src/ext/ComPlus/ComPlus.wixext.sln
+++ /dev/null
@@ -1,64 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.0.32126.317
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "complusca", "ca\complusca.vcxproj", "{BDEF51ED-E242-4FA2-801A-01B127DF851A}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "complus", "wixlib\complus.wixproj", "{E191E61E-E098-4F71-888F-51A79F952022}"
9 ProjectSection(ProjectDependencies) = postProject
10 {BDEF51ED-E242-4FA2-801A-01B127DF851A} = {BDEF51ED-E242-4FA2-801A-01B127DF851A}
11 EndProjectSection
12EndProject
13Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.ComPlus.wixext", "wixext\WixToolset.ComPlus.wixext.csproj", "{1497B777-330B-4CFE-927A-22850CD24D64}"
14EndProject
15Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.ComPlus", "test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj", "{2FC5F039-EACF-428B-BA87-8CDE1D25E121}"
16EndProject
17Global
18 GlobalSection(SolutionConfigurationPlatforms) = preSolution
19 Debug|Any CPU = Debug|Any CPU
20 Debug|x86 = Debug|x86
21 Release|Any CPU = Release|Any CPU
22 Release|x86 = Release|x86
23 EndGlobalSection
24 GlobalSection(ProjectConfigurationPlatforms) = postSolution
25 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|Any CPU.ActiveCfg = Debug|Win32
26 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|Any CPU.Build.0 = Debug|Win32
27 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|x86.ActiveCfg = Debug|Win32
28 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Debug|x86.Build.0 = Debug|Win32
29 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|Any CPU.ActiveCfg = Release|Win32
30 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|Any CPU.Build.0 = Release|Win32
31 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|x86.ActiveCfg = Release|Win32
32 {BDEF51ED-E242-4FA2-801A-01B127DF851A}.Release|x86.Build.0 = Release|Win32
33 {E191E61E-E098-4F71-888F-51A79F952022}.Debug|Any CPU.ActiveCfg = Debug|x86
34 {E191E61E-E098-4F71-888F-51A79F952022}.Debug|Any CPU.Build.0 = Debug|x86
35 {E191E61E-E098-4F71-888F-51A79F952022}.Debug|x86.ActiveCfg = Debug|x86
36 {E191E61E-E098-4F71-888F-51A79F952022}.Debug|x86.Build.0 = Debug|x86
37 {E191E61E-E098-4F71-888F-51A79F952022}.Release|Any CPU.ActiveCfg = Release|x86
38 {E191E61E-E098-4F71-888F-51A79F952022}.Release|Any CPU.Build.0 = Release|x86
39 {E191E61E-E098-4F71-888F-51A79F952022}.Release|x86.ActiveCfg = Release|x86
40 {E191E61E-E098-4F71-888F-51A79F952022}.Release|x86.Build.0 = Release|x86
41 {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42 {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|Any CPU.Build.0 = Debug|Any CPU
43 {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|x86.ActiveCfg = Debug|Any CPU
44 {1497B777-330B-4CFE-927A-22850CD24D64}.Debug|x86.Build.0 = Debug|Any CPU
45 {1497B777-330B-4CFE-927A-22850CD24D64}.Release|Any CPU.ActiveCfg = Release|Any CPU
46 {1497B777-330B-4CFE-927A-22850CD24D64}.Release|Any CPU.Build.0 = Release|Any CPU
47 {1497B777-330B-4CFE-927A-22850CD24D64}.Release|x86.ActiveCfg = Release|Any CPU
48 {1497B777-330B-4CFE-927A-22850CD24D64}.Release|x86.Build.0 = Release|Any CPU
49 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|Any CPU.Build.0 = Debug|Any CPU
51 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|x86.ActiveCfg = Debug|Any CPU
52 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Debug|x86.Build.0 = Debug|Any CPU
53 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|Any CPU.ActiveCfg = Release|Any CPU
54 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|Any CPU.Build.0 = Release|Any CPU
55 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|x86.ActiveCfg = Release|Any CPU
56 {2FC5F039-EACF-428B-BA87-8CDE1D25E121}.Release|x86.Build.0 = Release|Any CPU
57 EndGlobalSection
58 GlobalSection(SolutionProperties) = preSolution
59 HideSolutionNode = FALSE
60 EndGlobalSection
61 GlobalSection(ExtensibilityGlobals) = postSolution
62 SolutionGuid = {3E1857C4-5EE1-4C9E-9390-9954E041546D}
63 EndGlobalSection
64EndGlobal
diff --git a/src/ext/ComPlus/ComPlus.wixext.slnx b/src/ext/ComPlus/ComPlus.wixext.slnx
new file mode 100644
index 00000000..3f1aa9bb
--- /dev/null
+++ b/src/ext/ComPlus/ComPlus.wixext.slnx
@@ -0,0 +1,16 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/complusca.vcxproj" Id="bdef51ed-e242-4fa2-801a-01b127df851a">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj" />
10 <Project Path="wixext/WixToolset.ComPlus.wixext.csproj" />
11 <Project Path="wixlib/complus.wixproj">
12 <BuildDependency Project="ca/complusca.vcxproj" />
13 <Platform Project="x86" />
14 <Build />
15 </Project>
16</Solution>
diff --git a/src/ext/ComPlus/README.md b/src/ext/ComPlus/README.md
index 2412a6d1..01f60df4 100644
--- a/src/ext/ComPlus/README.md
+++ b/src/ext/ComPlus/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.ComPlus.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.ComPlus.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/ComPlus/ca/complusca.vcxproj b/src/ext/ComPlus/ca/complusca.vcxproj
index 93abb3b0..f190fbf4 100644
--- a/src/ext/ComPlus/ca/complusca.vcxproj
+++ b/src/ext/ComPlus/ca/complusca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/ComPlus/complus_t.proj b/src/ext/ComPlus/complus_t.proj
index 8f187744..56f0cc99 100644
--- a/src/ext/ComPlus/complus_t.proj
+++ b/src/ext/ComPlus/complus_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj" />
7 <ProjectReference Include="wixext\WixToolset.ComPlus.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.ComPlus.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.ComPlus.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.ComPlus.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
index 7b38ef54..ef3c8b00 100644
--- a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
+++ b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/ComPlusExtensionFixture.cs
@@ -1,9 +1,12 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.ComPlus 7namespace WixToolsetTest.ComPlus
4{ 8{
5 using System.Linq; 9 using System.Linq;
6 using Microsoft.VisualStudio.TestTools.UnitTesting;
7 using WixInternal.MSTestSupport; 10 using WixInternal.MSTestSupport;
8 using WixInternal.Core.MSTestPackage; 11 using WixInternal.Core.MSTestPackage;
9 using WixToolset.ComPlus; 12 using WixToolset.ComPlus;
diff --git a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj
index d0a7081b..2bd2e48f 100644
--- a/src/ext/ComPlus/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj
+++ b/src/ext/ComPlus/test/WixToolsetTest.ComPlus/WixToolsetTest.ComPlus.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Dependency/Dependency.wixext.sln b/src/ext/Dependency/Dependency.wixext.sln
deleted file mode 100644
index 7179d48b..00000000
--- a/src/ext/Dependency/Dependency.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30204.135
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dependencyca", "ca\dependencyca.vcxproj", "{B86AF46C-0F90-49CC-923F-A800B088D015}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "dependency", "wixlib\dependency.wixproj", "{58ED0EC8-73F8-4EE1-8664-A53486D38EC8}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Dependency.wixext", "wixext\WixToolset.Dependency.wixext.csproj", "{A0B6D3F1-AE5E-423B-BA92-60C9926CA498}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Dependency", "test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj", "{E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {B86AF46C-0F90-49CC-923F-A800B088D015}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {B86AF46C-0F90-49CC-923F-A800B088D015}.Debug|Any CPU.Build.0 = Debug|Win32
24 {B86AF46C-0F90-49CC-923F-A800B088D015}.Debug|x86.ActiveCfg = Debug|Win32
25 {B86AF46C-0F90-49CC-923F-A800B088D015}.Debug|x86.Build.0 = Debug|Win32
26 {B86AF46C-0F90-49CC-923F-A800B088D015}.Release|Any CPU.ActiveCfg = Release|Win32
27 {B86AF46C-0F90-49CC-923F-A800B088D015}.Release|Any CPU.Build.0 = Release|Win32
28 {B86AF46C-0F90-49CC-923F-A800B088D015}.Release|x86.ActiveCfg = Release|Win32
29 {B86AF46C-0F90-49CC-923F-A800B088D015}.Release|x86.Build.0 = Release|Win32
30 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Debug|Any CPU.Build.0 = Debug|x86
32 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Debug|x86.ActiveCfg = Debug|x86
33 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Debug|x86.Build.0 = Debug|x86
34 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Release|Any CPU.ActiveCfg = Release|x86
35 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Release|Any CPU.Build.0 = Release|x86
36 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Release|x86.ActiveCfg = Release|x86
37 {58ED0EC8-73F8-4EE1-8664-A53486D38EC8}.Release|x86.Build.0 = Release|x86
38 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Debug|x86.Build.0 = Debug|Any CPU
42 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Release|Any CPU.Build.0 = Release|Any CPU
44 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Release|x86.ActiveCfg = Release|Any CPU
45 {A0B6D3F1-AE5E-423B-BA92-60C9926CA498}.Release|x86.Build.0 = Release|Any CPU
46 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Debug|x86.Build.0 = Debug|Any CPU
50 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Release|Any CPU.Build.0 = Release|Any CPU
52 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Release|x86.ActiveCfg = Release|Any CPU
53 {E2AB6AA2-359D-4305-92B0-D90C8F87AF9B}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {77F012B1-8E94-4F85-9450-066C6BD15000}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/Dependency/Dependency.wixext.slnx b/src/ext/Dependency/Dependency.wixext.slnx
new file mode 100644
index 00000000..d6825d7c
--- /dev/null
+++ b/src/ext/Dependency/Dependency.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/dependencyca.vcxproj" Id="b86af46c-0f90-49cc-923f-a800b088d015">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj" />
10 <Project Path="wixext/WixToolset.Dependency.wixext.csproj" />
11 <Project Path="wixlib/dependency.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/Dependency/README.md b/src/ext/Dependency/README.md
index 0d7fd7b3..2ed031f2 100644
--- a/src/ext/Dependency/README.md
+++ b/src/ext/Dependency/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Dependency.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Dependency.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Dependency/ca/dependencyca.vcxproj b/src/ext/Dependency/ca/dependencyca.vcxproj
index f2eb7a0f..62a1c9a4 100644
--- a/src/ext/Dependency/ca/dependencyca.vcxproj
+++ b/src/ext/Dependency/ca/dependencyca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Dependency/ca/dependencyca.vcxproj.filters b/src/ext/Dependency/ca/dependencyca.vcxproj.filters
index bfe457e2..6cb6395a 100644
--- a/src/ext/Dependency/ca/dependencyca.vcxproj.filters
+++ b/src/ext/Dependency/ca/dependencyca.vcxproj.filters
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup> 3 <ItemGroup>
4 <Filter Include="Source Files"> 4 <Filter Include="Source Files">
5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
@@ -33,4 +33,4 @@
33 </None> 33 </None>
34 <None Include="packages.config" /> 34 <None Include="packages.config" />
35 </ItemGroup> 35 </ItemGroup>
36</Project> \ No newline at end of file 36</Project>
diff --git a/src/ext/Dependency/dependency_t.proj b/src/ext/Dependency/dependency_t.proj
index 569ddd17..c4293806 100644
--- a/src/ext/Dependency/dependency_t.proj
+++ b/src/ext/Dependency/dependency_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Dependency.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Dependency.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Dependency.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Dependency.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Dependency/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs b/src/ext/Dependency/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
index ade2a12e..4104395f 100644
--- a/src/ext/Dependency/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
+++ b/src/ext/Dependency/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
@@ -1,10 +1,13 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Dependency 7namespace WixToolsetTest.Dependency
4{ 8{
5 using System.Linq; 9 using System.Linq;
6 using System.Text.RegularExpressions; 10 using System.Text.RegularExpressions;
7 using Microsoft.VisualStudio.TestTools.UnitTesting;
8 using WixInternal.MSTestSupport; 11 using WixInternal.MSTestSupport;
9 using WixInternal.Core.MSTestPackage; 12 using WixInternal.Core.MSTestPackage;
10 using WixToolset.Dependency; 13 using WixToolset.Dependency;
diff --git a/src/ext/Dependency/test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj b/src/ext/Dependency/test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj
index 1fd46c63..7f531a22 100644
--- a/src/ext/Dependency/test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj
+++ b/src/ext/Dependency/test/WixToolsetTest.Dependency/WixToolsetTest.Dependency.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/DirectX/DirectX.wixext.sln b/src/ext/DirectX/DirectX.wixext.sln
deleted file mode 100644
index 6315616a..00000000
--- a/src/ext/DirectX/DirectX.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30204.135
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "directxca", "ca\directxca.vcxproj", "{76542B28-0FFD-47D3-AD6A-D0F20FA875AC}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "directx", "wixlib\directx.wixproj", "{4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.DirectX.wixext", "wixext\WixToolset.DirectX.wixext.csproj", "{6182DBCA-146A-4F37-8406-3139BBE04636}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.DirectX", "test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj", "{508A3DD0-FE58-4150-A1F6-A803A377012A}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Debug|Any CPU.Build.0 = Debug|Win32
24 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Debug|x86.ActiveCfg = Debug|Win32
25 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Debug|x86.Build.0 = Debug|Win32
26 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Release|Any CPU.ActiveCfg = Release|Win32
27 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Release|Any CPU.Build.0 = Release|Win32
28 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Release|x86.ActiveCfg = Release|Win32
29 {76542B28-0FFD-47D3-AD6A-D0F20FA875AC}.Release|x86.Build.0 = Release|Win32
30 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Debug|Any CPU.Build.0 = Debug|x86
32 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Debug|x86.ActiveCfg = Debug|x86
33 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Debug|x86.Build.0 = Debug|x86
34 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Release|Any CPU.ActiveCfg = Release|x86
35 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Release|Any CPU.Build.0 = Release|x86
36 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Release|x86.ActiveCfg = Release|x86
37 {4D8DDEC7-AAAC-4A32-87D0-5992FE382ED9}.Release|x86.Build.0 = Release|x86
38 {6182DBCA-146A-4F37-8406-3139BBE04636}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {6182DBCA-146A-4F37-8406-3139BBE04636}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {6182DBCA-146A-4F37-8406-3139BBE04636}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {6182DBCA-146A-4F37-8406-3139BBE04636}.Debug|x86.Build.0 = Debug|Any CPU
42 {6182DBCA-146A-4F37-8406-3139BBE04636}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {6182DBCA-146A-4F37-8406-3139BBE04636}.Release|Any CPU.Build.0 = Release|Any CPU
44 {6182DBCA-146A-4F37-8406-3139BBE04636}.Release|x86.ActiveCfg = Release|Any CPU
45 {6182DBCA-146A-4F37-8406-3139BBE04636}.Release|x86.Build.0 = Release|Any CPU
46 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Debug|x86.Build.0 = Debug|Any CPU
50 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Release|Any CPU.Build.0 = Release|Any CPU
52 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Release|x86.ActiveCfg = Release|Any CPU
53 {508A3DD0-FE58-4150-A1F6-A803A377012A}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {A32D323A-3843-410E-BB3A-A97ABA6E4107}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/DirectX/DirectX.wixext.slnx b/src/ext/DirectX/DirectX.wixext.slnx
new file mode 100644
index 00000000..f2cb74b2
--- /dev/null
+++ b/src/ext/DirectX/DirectX.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/directxca.vcxproj" Id="76542b28-0ffd-47d3-ad6a-d0f20fa875ac">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj" />
10 <Project Path="wixext/WixToolset.DirectX.wixext.csproj" />
11 <Project Path="wixlib/directx.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/DirectX/README.md b/src/ext/DirectX/README.md
index 2f9f3f08..cceaa105 100644
--- a/src/ext/DirectX/README.md
+++ b/src/ext/DirectX/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.DirectX.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.DirectX.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/DirectX/ca/directxca.vcxproj b/src/ext/DirectX/ca/directxca.vcxproj
index 00b4fcb0..a138109f 100644
--- a/src/ext/DirectX/ca/directxca.vcxproj
+++ b/src/ext/DirectX/ca/directxca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/DirectX/directx_t.proj b/src/ext/DirectX/directx_t.proj
index f014465b..ff28ccb7 100644
--- a/src/ext/DirectX/directx_t.proj
+++ b/src/ext/DirectX/directx_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj" />
7 <ProjectReference Include="wixext\WixToolset.DirectX.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.DirectX.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.DirectX.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.DirectX.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs b/src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs
index dceaaec5..d4c3d9a5 100644
--- a/src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs
+++ b/src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs
@@ -1,9 +1,12 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.DirectX 7namespace WixToolsetTest.DirectX
4{ 8{
5 using System.Linq; 9 using System.Linq;
6 using Microsoft.VisualStudio.TestTools.UnitTesting;
7 using WixInternal.MSTestSupport; 10 using WixInternal.MSTestSupport;
8 using WixInternal.Core.MSTestPackage; 11 using WixInternal.Core.MSTestPackage;
9 using WixToolset.DirectX; 12 using WixToolset.DirectX;
diff --git a/src/ext/DirectX/test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj b/src/ext/DirectX/test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj
index c13f3300..abbe7541 100644
--- a/src/ext/DirectX/test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj
+++ b/src/ext/DirectX/test/WixToolsetTest.DirectX/WixToolsetTest.DirectX.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Firewall/Firewall.wixext.sln b/src/ext/Firewall/Firewall.wixext.sln
deleted file mode 100644
index c6494e4f..00000000
--- a/src/ext/Firewall/Firewall.wixext.sln
+++ /dev/null
@@ -1,75 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.31624.102
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fwca", "ca\fwca.vcxproj", "{F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "firewall", "wixlib\firewall.wixproj", "{1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Firewall.wixext", "wixext\WixToolset.Firewall.wixext.csproj", "{6CF033EB-0A39-4AC6-9D41-9BD506352045}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Firewall", "test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj", "{D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x64 = Debug|x64
18 Debug|x86 = Debug|x86
19 Release|Any CPU = Release|Any CPU
20 Release|x64 = Release|x64
21 Release|x86 = Release|x86
22 EndGlobalSection
23 GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.ActiveCfg = Debug|Win32
25 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.Build.0 = Debug|Win32
26 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x64.ActiveCfg = Debug|Win32
27 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.ActiveCfg = Debug|Win32
28 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.Build.0 = Debug|Win32
29 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.ActiveCfg = Release|Win32
30 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.Build.0 = Release|Win32
31 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x64.ActiveCfg = Release|Win32
32 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.ActiveCfg = Release|Win32
33 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.Build.0 = Release|Win32
34 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|Any CPU.ActiveCfg = Debug|x86
35 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|Any CPU.Build.0 = Debug|x86
36 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x64.ActiveCfg = Debug|x86
37 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x86.ActiveCfg = Debug|x86
38 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x86.Build.0 = Debug|x86
39 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|Any CPU.ActiveCfg = Release|x86
40 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|Any CPU.Build.0 = Release|x86
41 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x64.ActiveCfg = Release|x86
42 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x86.ActiveCfg = Release|x86
43 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x86.Build.0 = Release|x86
44 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x64.ActiveCfg = Debug|Any CPU
47 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x64.Build.0 = Debug|Any CPU
48 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x86.Build.0 = Debug|Any CPU
50 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|Any CPU.Build.0 = Release|Any CPU
52 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x64.ActiveCfg = Release|Any CPU
53 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x64.Build.0 = Release|Any CPU
54 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x86.ActiveCfg = Release|Any CPU
55 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x86.Build.0 = Release|Any CPU
56 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|Any CPU.Build.0 = Debug|Any CPU
58 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x64.ActiveCfg = Debug|Any CPU
59 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x64.Build.0 = Debug|Any CPU
60 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x86.ActiveCfg = Debug|Any CPU
61 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x86.Build.0 = Debug|Any CPU
62 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|Any CPU.ActiveCfg = Release|Any CPU
63 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|Any CPU.Build.0 = Release|Any CPU
64 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x64.ActiveCfg = Release|Any CPU
65 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x64.Build.0 = Release|Any CPU
66 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x86.ActiveCfg = Release|Any CPU
67 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x86.Build.0 = Release|Any CPU
68 EndGlobalSection
69 GlobalSection(SolutionProperties) = preSolution
70 HideSolutionNode = FALSE
71 EndGlobalSection
72 GlobalSection(ExtensibilityGlobals) = postSolution
73 SolutionGuid = {E4566A6B-47D0-4EA0-989A-D763AC39105D}
74 EndGlobalSection
75EndGlobal
diff --git a/src/ext/Firewall/Firewall.wixext.slnx b/src/ext/Firewall/Firewall.wixext.slnx
new file mode 100644
index 00000000..66c7dabc
--- /dev/null
+++ b/src/ext/Firewall/Firewall.wixext.slnx
@@ -0,0 +1,18 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="ca/fwca.vcxproj" Id="f72d34ca-48da-4dfd-91a9-a0c78bef6981">
8 <Platform Project="Win32" />
9 <Build Solution="*|x64" Project="false" />
10 </Project>
11 <Project Path="test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj" />
12 <Project Path="wixext/WixToolset.Firewall.wixext.csproj" />
13 <Project Path="wixlib/firewall.wixproj">
14 <Platform Project="x86" />
15 <Build Solution="*|Any CPU" />
16 <Build Solution="*|x86" />
17 </Project>
18</Solution>
diff --git a/src/ext/Firewall/README.md b/src/ext/Firewall/README.md
index bd2b3fce..eac3acf9 100644
--- a/src/ext/Firewall/README.md
+++ b/src/ext/Firewall/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Firewall.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Firewall.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Firewall/ca/firewall.cpp b/src/ext/Firewall/ca/firewall.cpp
index f50ae409..dfe8ecf1 100644
--- a/src/ext/Firewall/ca/firewall.cpp
+++ b/src/ext/Firewall/ca/firewall.cpp
@@ -464,29 +464,30 @@ static HRESULT GetFwRuleInterfaces(
464 } 464 }
465 } 465 }
466 466
467 ExitOnNull(iInterfacesCount, hr, S_OK, "All interfaces are empty values"); 467 if (iInterfacesCount > 0)
468
469 vInterfaces.vt = VT_ARRAY | VT_VARIANT;
470 // this will be cleaned up by ReleaseVariant call of the calling function
471 vInterfaces.parray = SafeArrayCreateVector(VT_VARIANT, 0, iInterfacesCount);
472
473 for (LPCWSTR pwzElement = bstrInterfaces; pwzElement < (bstrInterfaces + iLength); ++pwzElement)
474 { 468 {
475 if (*pwzElement) 469 vInterfaces.vt = VT_ARRAY | VT_VARIANT;
470 // this will be cleaned up by ReleaseVariant call of the calling function
471 vInterfaces.parray = SafeArrayCreateVector(VT_VARIANT, 0, iInterfacesCount);
472
473 for (LPCWSTR pwzElement = bstrInterfaces; pwzElement < (bstrInterfaces + iLength); ++pwzElement)
476 { 474 {
477 VARIANT vElement; 475 if (*pwzElement)
478 ::VariantInit(&vElement); 476 {
477 VARIANT vElement;
478 ::VariantInit(&vElement);
479 479
480 vElement.vt = VT_BSTR; 480 vElement.vt = VT_BSTR;
481 // this will be cleaned up by ReleaseVariant call of the calling function 481 // this will be cleaned up by ReleaseVariant call of the calling function
482 vElement.bstrVal = ::SysAllocString(pwzElement); 482 vElement.bstrVal = ::SysAllocString(pwzElement);
483 ExitOnNull(vElement.bstrVal, hr, E_OUTOFMEMORY, "failed SysAllocString for interface element"); 483 ExitOnNull(vElement.bstrVal, hr, E_OUTOFMEMORY, "failed SysAllocString for interface element");
484 484
485 hr = SafeArrayPutElement(vInterfaces.parray, &iIndex, &vElement); 485 hr = SafeArrayPutElement(vInterfaces.parray, &iIndex, &vElement);
486 ExitOnFailure(hr, "failed to put interface '%ls' into safe array", pwzElement); 486 ExitOnFailure(hr, "failed to put interface '%ls' into safe array", pwzElement);
487 487
488 pwzElement += ::SysStringLen(vElement.bstrVal); 488 pwzElement += ::SysStringLen(vElement.bstrVal);
489 iIndex++; 489 iIndex++;
490 }
490 } 491 }
491 } 492 }
492 493
diff --git a/src/ext/Firewall/ca/fwca.vcxproj b/src/ext/Firewall/ca/fwca.vcxproj
index 227242cb..14c3869d 100644
--- a/src/ext/Firewall/ca/fwca.vcxproj
+++ b/src/ext/Firewall/ca/fwca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Firewall/firewall_t.proj b/src/ext/Firewall/firewall_t.proj
index 72128805..f2cee0a0 100644
--- a/src/ext/Firewall/firewall_t.proj
+++ b/src/ext/Firewall/firewall_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Firewall.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Firewall.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Firewall.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Firewall.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
index 4b9aecd7..3be8af0e 100644
--- a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
@@ -1,7 +1,12 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Firewall 7namespace WixToolsetTest.Firewall
4{ 8{
9 using System;
5 using System.Data; 10 using System.Data;
6 using System.IO; 11 using System.IO;
7 using System.Linq; 12 using System.Linq;
@@ -621,6 +626,39 @@ namespace WixToolsetTest.Firewall
621 }, locals.ToArray()); 626 }, locals.ToArray());
622 } 627 }
623 628
629 [TestMethod]
630 public void CanDecompileWix4FirewallPackage()
631 {
632 var folder = TestData.Get(@"TestData\DecompileWix4Firewall");
633 var output = Path.Combine(folder, "DecompiledWix4Firewall.xml");
634
635 var result = WixRunner.Execute(
636 "msi",
637 "decompile",
638 "-ext", Path.GetFullPath(typeof(FirewallExtensionFactory).Assembly.Location),
639 Path.Combine(folder, "Firewall4.msi"),
640 "-o", output
641 );
642 result.AssertSuccess();
643
644 var doc = XDocument.Load(output);
645 var actual = doc.Descendants()
646 .Where(e => e.Name.Namespace == "http://wixtoolset.org/schemas/v4/wxs/firewall")
647 .Select(fe => new { Name = fe.Name.LocalName, Attributes = fe.Attributes().Select(a => $"{a.Name.LocalName}={a.Value}").ToArray() })
648 .ToArray();
649
650 WixAssert.CompareLineByLine(new[]
651 {
652 "FirewallException",
653 "RemoteAddress",
654 "RemoteAddress",
655 "RemoteAddress",
656 "RemoteAddress",
657 "RemoteAddress",
658 "FirewallException",
659 }, actual.Select(a => a.Name).ToArray());
660 }
661
624 private static void Build(string[] args) 662 private static void Build(string[] args)
625 { 663 {
626 var result = WixRunner.Execute(args); 664 var result = WixRunner.Execute(args);
@@ -654,8 +692,9 @@ namespace WixToolsetTest.Firewall
654 var folder = TestData.Get(@"TestData", path); 692 var folder = TestData.Get(@"TestData", path);
655 var build = new Builder(folder, typeof(FirewallExtensionFactory), new[] { folder }); 693 var build = new Builder(folder, typeof(FirewallExtensionFactory), new[] { folder });
656 var output = Path.Combine(folder, $"Firewall{ruleName}.xml"); 694 var output = Path.Combine(folder, $"Firewall{ruleName}.xml");
695 var isOfficialBuild = !String.IsNullOrEmpty(Environment.GetEnvironmentVariable("WixOfficialBuild"));
657 696
658 build.BuildAndDecompileAndBuild(Build, Decompile, output, validate: true); 697 build.BuildAndDecompileAndBuild(Build, Decompile, output, validate: isOfficialBuild);
659 698
660 var doc = XDocument.Load(output); 699 var doc = XDocument.Load(output);
661 var actual = doc.Descendants() 700 var actual = doc.Descendants()
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi
new file mode 100644
index 00000000..1dde5df4
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi
Binary files differ
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj
new file mode 100644
index 00000000..0098d7ac
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj
@@ -0,0 +1,6 @@
1<Project Sdk="WixToolset.Sdk/4.0.6">
2 <ItemGroup>
3 <PackageVersion Update="WixToolset.Firewall.wixext" Version="4.0.6" />
4 <PackageReference Include="WixToolset.Firewall.wixext" />
5 </ItemGroup>
6</Project> \ No newline at end of file
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs
new file mode 100644
index 00000000..8a89ad6c
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs
@@ -0,0 +1,36 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
2 xmlns:fw="http://wixtoolset.org/schemas/v4/wxs/firewall">
3 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <MajorUpgrade DowngradeErrorMessage="(DowngradeError)" />
5 <MediaTemplate EmbedCab="yes" />
6
7 <Feature Id="FAll">
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
18 <Fragment>
19 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
20 <Component>
21 <File Name="fw.exe" Source="$(sys.SOURCEFILEPATH)">
22 <Shortcut Id="FwShortcut" Directory="INSTALLFOLDER" Name="Firewall" />
23 <fw:FirewallException Id="ExampleFirewall" Description="An app-based firewall exception" Name="ExampleApp" Port="42">
24 <fw:RemoteAddress Value="Defaultgateway" />
25 <fw:RemoteAddress Value="DHCP" />
26 <fw:RemoteAddress Value="DNS" />
27 <fw:RemoteAddress Value="255.255.255.0" />
28 <fw:RemoteAddress Value="1.1.1.1-2.2.2.2" />
29 </fw:FirewallException>
30 </File>
31
32 <fw:FirewallException Description="A port-based firewall exception" Name="ExamplePort" Port="42" Outbound="yes" Scope="localSubnet" />
33 </Component>
34 </ComponentGroup>
35 </Fragment>
36</Wix>
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj b/src/ext/Firewall/test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj
index 5de88c8b..be2ddd36 100644
--- a/src/ext/Firewall/test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/WixToolsetTest.Firewall.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Firewall/wixext/FirewallDecompiler.cs b/src/ext/Firewall/wixext/FirewallDecompiler.cs
index 4fafc0a0..dbfc882e 100644
--- a/src/ext/Firewall/wixext/FirewallDecompiler.cs
+++ b/src/ext/Firewall/wixext/FirewallDecompiler.cs
@@ -4,8 +4,6 @@ namespace WixToolset.Firewall
4{ 4{
5 using System; 5 using System;
6 using System.Collections.Generic; 6 using System.Collections.Generic;
7 using System.Reflection;
8 using System.Security;
9 using System.Xml.Linq; 7 using System.Xml.Linq;
10 using WixToolset.Data; 8 using WixToolset.Data;
11 using WixToolset.Data.WindowsInstaller; 9 using WixToolset.Data.WindowsInstaller;
@@ -83,7 +81,7 @@ namespace WixToolset.Firewall
83 string[] addresses = ((string)row[2]).Split(','); 81 string[] addresses = ((string)row[2]).Split(',');
84 if (addresses.Length == 1) 82 if (addresses.Length == 1)
85 { 83 {
86 switch(addresses[0]) 84 switch (addresses[0])
87 { 85 {
88 case "*": 86 case "*":
89 firewallException.Add(new XAttribute("Scope", "any")); 87 firewallException.Add(new XAttribute("Scope", "any"));
@@ -482,20 +480,25 @@ namespace WixToolset.Firewall
482 /// <param name="tables">Collection of all tables.</param> 480 /// <param name="tables">Collection of all tables.</param>
483 private void FinalizeFirewallExceptionTable(TableIndexedCollection tables) 481 private void FinalizeFirewallExceptionTable(TableIndexedCollection tables)
484 { 482 {
485 if (tables.TryGetTable("Wix5FirewallException", out var firewallExceptionTable)) 483 var possibleTableNames = new List<string>() { "WixFirewallException", "Wix4FirewallException", "Wix5FirewallException", };
484
485 foreach (var tableName in possibleTableNames)
486 { 486 {
487 foreach (var row in firewallExceptionTable.Rows) 487 if (tables.TryGetTable(tableName, out var firewallExceptionTable))
488 { 488 {
489 var xmlConfig = this.DecompilerHelper.GetIndexedElement(row); 489 foreach (var row in firewallExceptionTable.Rows)
490
491 var componentId = row.FieldAsString(8);
492 if (this.DecompilerHelper.TryGetIndexedElement("Component", componentId, out var component))
493 {
494 component.Add(xmlConfig);
495 }
496 else
497 { 490 {
498 this.Messaging.Write(WarningMessages.ExpectedForeignRow(row.SourceLineNumbers, firewallExceptionTable.Name, row.GetPrimaryKey(), "Component_", componentId, "Component")); 491 var xmlConfig = this.DecompilerHelper.GetIndexedElement(row);
492
493 var componentId = row.FieldAsString(8);
494 if (this.DecompilerHelper.TryGetIndexedElement("Component", componentId, out var component))
495 {
496 component.Add(xmlConfig);
497 }
498 else
499 {
500 this.Messaging.Write(WarningMessages.ExpectedForeignRow(row.SourceLineNumbers, firewallExceptionTable.Name, row.GetPrimaryKey(), "Component_", componentId, "Component"));
501 }
499 } 502 }
500 } 503 }
501 } 504 }
diff --git a/src/ext/Http/Http.wixext.sln b/src/ext/Http/Http.wixext.sln
deleted file mode 100644
index 08e9a833..00000000
--- a/src/ext/Http/Http.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30204.135
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpca", "ca\httpca.vcxproj", "{90743805-C043-47C7-B5FF-8F5EE5C8A2DE}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "http", "wixlib\http.wixproj", "{055C1517-4CED-4199-BCDE-A383E5C4EF78}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Http.wixext", "wixext\WixToolset.Http.wixext.csproj", "{AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Http", "test\WixToolsetTest.Http\WixToolsetTest.Http.csproj", "{6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}"
13EndProject
14Global`
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Debug|Any CPU.Build.0 = Debug|Win32
24 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Debug|x86.ActiveCfg = Debug|Win32
25 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Debug|x86.Build.0 = Debug|Win32
26 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Release|Any CPU.ActiveCfg = Release|Win32
27 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Release|Any CPU.Build.0 = Release|Win32
28 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Release|x86.ActiveCfg = Release|Win32
29 {90743805-C043-47C7-B5FF-8F5EE5C8A2DE}.Release|x86.Build.0 = Release|Win32
30 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Debug|Any CPU.Build.0 = Debug|x86
32 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Debug|x86.ActiveCfg = Debug|x86
33 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Debug|x86.Build.0 = Debug|x86
34 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Release|Any CPU.ActiveCfg = Release|x86
35 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Release|Any CPU.Build.0 = Release|x86
36 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Release|x86.ActiveCfg = Release|x86
37 {055C1517-4CED-4199-BCDE-A383E5C4EF78}.Release|x86.Build.0 = Release|x86
38 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Debug|x86.Build.0 = Debug|Any CPU
42 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Release|Any CPU.Build.0 = Release|Any CPU
44 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Release|x86.ActiveCfg = Release|Any CPU
45 {AAFC3C7F-D818-4B1D-AF3F-A331EA917F3F}.Release|x86.Build.0 = Release|Any CPU
46 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Debug|x86.Build.0 = Debug|Any CPU
50 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Release|Any CPU.Build.0 = Release|Any CPU
52 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Release|x86.ActiveCfg = Release|Any CPU
53 {6379EBAA-B5FE-4468-89A3-EF0B5D30B87E}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {570B1B57-B310-4493-A3A3-B40D7374EFC3}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/Http/Http.wixext.slnx b/src/ext/Http/Http.wixext.slnx
new file mode 100644
index 00000000..57f86502
--- /dev/null
+++ b/src/ext/Http/Http.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/httpca.vcxproj" Id="90743805-c043-47c7-b5ff-8f5ee5c8a2de">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.Http/WixToolsetTest.Http.csproj" />
10 <Project Path="wixext/WixToolset.Http.wixext.csproj" />
11 <Project Path="wixlib/http.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/Http/README.md b/src/ext/Http/README.md
index 64cbbf51..35c80c68 100644
--- a/src/ext/Http/README.md
+++ b/src/ext/Http/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Http.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Http.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Http/ca/httpca.vcxproj b/src/ext/Http/ca/httpca.vcxproj
index 73ded72e..865e2ffe 100644
--- a/src/ext/Http/ca/httpca.vcxproj
+++ b/src/ext/Http/ca/httpca.vcxproj
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <ItemGroup Label="ProjectConfigurations"> 4 <ItemGroup Label="ProjectConfigurations">
5 <ProjectConfiguration Include="Debug|Win32"> 5 <ProjectConfiguration Include="Debug|Win32">
6 <Configuration>Debug</Configuration> 6 <Configuration>Debug</Configuration>
@@ -59,4 +59,4 @@
59 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" /> 59 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
60 </ItemGroup> 60 </ItemGroup>
61 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 61 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
62</Project> \ No newline at end of file 62</Project>
diff --git a/src/ext/Http/ca/httpca.vcxproj.filters b/src/ext/Http/ca/httpca.vcxproj.filters
index 4f91b946..64066a0d 100644
--- a/src/ext/Http/ca/httpca.vcxproj.filters
+++ b/src/ext/Http/ca/httpca.vcxproj.filters
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup> 3 <ItemGroup>
4 <Filter Include="Source Files"> 4 <Filter Include="Source Files">
5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
@@ -38,4 +38,4 @@
38 <Filter>Source Files</Filter> 38 <Filter>Source Files</Filter>
39 </None> 39 </None>
40 </ItemGroup> 40 </ItemGroup>
41</Project> \ No newline at end of file 41</Project>
diff --git a/src/ext/Http/http_t.proj b/src/ext/Http/http_t.proj
index ddcb64b4..b3de433f 100644
--- a/src/ext/Http/http_t.proj
+++ b/src/ext/Http/http_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Http\WixToolsetTest.Http.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Http\WixToolsetTest.Http.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Http.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Http.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Http.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Http.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Http\WixToolsetTest.Http.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Http/test/WixToolsetTest.Http/HttpExtensionFixture.cs b/src/ext/Http/test/WixToolsetTest.Http/HttpExtensionFixture.cs
index c91ce937..7dcb9086 100644
--- a/src/ext/Http/test/WixToolsetTest.Http/HttpExtensionFixture.cs
+++ b/src/ext/Http/test/WixToolsetTest.Http/HttpExtensionFixture.cs
@@ -1,5 +1,9 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Http 7namespace WixToolsetTest.Http
4{ 8{
5 using Microsoft.VisualStudio.TestTools.UnitTesting; 9 using Microsoft.VisualStudio.TestTools.UnitTesting;
diff --git a/src/ext/Http/test/WixToolsetTest.Http/WixToolsetTest.Http.csproj b/src/ext/Http/test/WixToolsetTest.Http/WixToolsetTest.Http.csproj
index d5e6c929..759787bf 100644
--- a/src/ext/Http/test/WixToolsetTest.Http/WixToolsetTest.Http.csproj
+++ b/src/ext/Http/test/WixToolsetTest.Http/WixToolsetTest.Http.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Iis/Iis.wixext.sln b/src/ext/Iis/Iis.wixext.sln
deleted file mode 100644
index f0abdcd3..00000000
--- a/src/ext/Iis/Iis.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30204.135
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iisca", "ca\iisca.vcxproj", "{CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "iis", "wixlib\iis.wixproj", "{92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Iis.wixext", "wixext\WixToolset.Iis.wixext.csproj", "{612029FB-B5D4-4D7E-B794-A0E202BFE493}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Iis", "test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj", "{E62712D7-31A1-49E4-B1F4-0084FAD14193}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Debug|Any CPU.Build.0 = Debug|Win32
24 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Debug|x86.ActiveCfg = Debug|Win32
25 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Debug|x86.Build.0 = Debug|Win32
26 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Release|Any CPU.ActiveCfg = Release|Win32
27 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Release|Any CPU.Build.0 = Release|Win32
28 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Release|x86.ActiveCfg = Release|Win32
29 {CB3FB8C4-14BF-4EA6-9F01-7FB258E5AEF3}.Release|x86.Build.0 = Release|Win32
30 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Debug|Any CPU.Build.0 = Debug|x86
32 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Debug|x86.ActiveCfg = Debug|x86
33 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Debug|x86.Build.0 = Debug|x86
34 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Release|Any CPU.ActiveCfg = Release|x86
35 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Release|Any CPU.Build.0 = Release|x86
36 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Release|x86.ActiveCfg = Release|x86
37 {92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}.Release|x86.Build.0 = Release|x86
38 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Debug|x86.Build.0 = Debug|Any CPU
42 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Release|Any CPU.Build.0 = Release|Any CPU
44 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Release|x86.ActiveCfg = Release|Any CPU
45 {612029FB-B5D4-4D7E-B794-A0E202BFE493}.Release|x86.Build.0 = Release|Any CPU
46 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Debug|x86.Build.0 = Debug|Any CPU
50 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Release|Any CPU.Build.0 = Release|Any CPU
52 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Release|x86.ActiveCfg = Release|Any CPU
53 {E62712D7-31A1-49E4-B1F4-0084FAD14193}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {89256463-14A3-4968-8688-F75EC230B021}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/Iis/Iis.wixext.slnx b/src/ext/Iis/Iis.wixext.slnx
new file mode 100644
index 00000000..43f7f7fc
--- /dev/null
+++ b/src/ext/Iis/Iis.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/iisca.vcxproj" Id="cb3fb8c4-14bf-4ea6-9f01-7fb258e5aef3">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj" />
10 <Project Path="wixext/WixToolset.Iis.wixext.csproj" />
11 <Project Path="wixlib/iis.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/Iis/README.md b/src/ext/Iis/README.md
index 3344d10c..f9fb96c3 100644
--- a/src/ext/Iis/README.md
+++ b/src/ext/Iis/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Iis.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Iis.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Iis/ca/iisca.vcxproj b/src/ext/Iis/ca/iisca.vcxproj
index e148c520..583c4ab4 100644
--- a/src/ext/Iis/ca/iisca.vcxproj
+++ b/src/ext/Iis/ca/iisca.vcxproj
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <ItemGroup Label="ProjectConfigurations"> 4 <ItemGroup Label="ProjectConfigurations">
5 <ProjectConfiguration Include="Debug|Win32"> 5 <ProjectConfiguration Include="Debug|Win32">
6 <Configuration>Debug</Configuration> 6 <Configuration>Debug</Configuration>
diff --git a/src/ext/Iis/ca/scaapppool.cpp b/src/ext/Iis/ca/scaapppool.cpp
index 781c55ca..951f2d4b 100644
--- a/src/ext/Iis/ca/scaapppool.cpp
+++ b/src/ext/Iis/ca/scaapppool.cpp
@@ -80,7 +80,7 @@ HRESULT ScaAppPoolRead(
80 WcaLog(LOGMSG_VERBOSE, "Skipping ScaAppPoolRead() - required table not present"); 80 WcaLog(LOGMSG_VERBOSE, "Skipping ScaAppPoolRead() - required table not present");
81 ExitFunction1(hr = S_FALSE); 81 ExitFunction1(hr = S_FALSE);
82 } 82 }
83 83
84 hr = WcaBeginUnwrapQuery(&hComponentQuery, ppwzCustomActionData); 84 hr = WcaBeginUnwrapQuery(&hComponentQuery, ppwzCustomActionData);
85 ExitOnFailure(hr, "Failed to unwrap query for ScaAppPoolRead"); 85 ExitOnFailure(hr, "Failed to unwrap query for ScaAppPoolRead");
86 86
@@ -478,17 +478,17 @@ HRESULT ScaWriteAppPool(
478 } 478 }
479 else if (psap->iAttributes & APATTR_OTHERUSER) 479 else if (psap->iAttributes & APATTR_OTHERUSER)
480 { 480 {
481 if (!*psap->suUser.wzDomain || CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzDomain, -1, L".", -1)) 481 if (!*psap->suUser.wzDomain || CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzDomain, -1, L".", -1, TRUE))
482 { 482 {
483 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"NetworkService", -1)) 483 if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"NetworkService", -1, TRUE))
484 { 484 {
485 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_NETWORKSERVICE; 485 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_NETWORKSERVICE;
486 } 486 }
487 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"LocalService", -1)) 487 else if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"LocalService", -1, TRUE))
488 { 488 {
489 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSERVICE; 489 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSERVICE;
490 } 490 }
491 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"LocalSystem", -1)) 491 else if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"LocalSystem", -1, TRUE))
492 { 492 {
493 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSYSTEM; 493 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSYSTEM;
494 } 494 }
@@ -497,17 +497,17 @@ HRESULT ScaWriteAppPool(
497 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_SPECIFICUSER; 497 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_SPECIFICUSER;
498 } 498 }
499 } 499 }
500 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzDomain, -1, L"NT AUTHORITY", -1)) 500 else if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzDomain, -1, L"NT AUTHORITY", -1, TRUE))
501 { 501 {
502 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"NETWORK SERVICE", -1)) 502 if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"NETWORK SERVICE", -1, TRUE))
503 { 503 {
504 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_NETWORKSERVICE; 504 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_NETWORKSERVICE;
505 } 505 }
506 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"SERVICE", -1)) 506 else if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"SERVICE", -1, TRUE))
507 { 507 {
508 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSERVICE; 508 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSERVICE;
509 } 509 }
510 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, psap->suUser.wzName, -1, L"SYSTEM", -1)) 510 else if (CSTR_EQUAL == ::CompareStringOrdinal(psap->suUser.wzName, -1, L"SYSTEM", -1, TRUE))
511 { 511 {
512 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSYSTEM; 512 dwIdentity = MD_APPPOOL_IDENTITY_TYPE_LOCALSYSTEM;
513 } 513 }
diff --git a/src/ext/Iis/ca/scaexecIIS7.cpp b/src/ext/Iis/ca/scaexecIIS7.cpp
index 108007a1..52378d34 100644
--- a/src/ext/Iis/ca/scaexecIIS7.cpp
+++ b/src/ext/Iis/ca/scaexecIIS7.cpp
@@ -566,7 +566,7 @@ HRESULT IIS7AspProperty(
566 // 566 //
567 //Do not append trailing '/' for default vDir 567 //Do not append trailing '/' for default vDir
568 // 568 //
569 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzPathName, -1, L"/", -1)) 569 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzPathName, -1, L"/", -1, TRUE))
570 { 570 {
571 hr = StrAllocConcat(&pwzLocationPath, L"/", 0); 571 hr = StrAllocConcat(&pwzLocationPath, L"/", 0);
572 ExitOnFailure(hr, "failed to copy location WebDir '/'"); 572 ExitOnFailure(hr, "failed to copy location WebDir '/'");
@@ -742,7 +742,7 @@ HRESULT IIS7WebDir(
742 // 742 //
743 //Do not append trailing '/' for default vDir 743 //Do not append trailing '/' for default vDir
744 // 744 //
745 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzPathName, -1, L"/", -1)) 745 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzPathName, -1, L"/", -1, TRUE))
746 { 746 {
747 hr = StrAllocConcat(&pwzLocationPath, L"/", 0); 747 hr = StrAllocConcat(&pwzLocationPath, L"/", 0);
748 ExitOnFailure(hr, "failed to copy location WebDir '/'"); 748 ExitOnFailure(hr, "failed to copy location WebDir '/'");
@@ -998,7 +998,7 @@ HRESULT IIS7WebError(
998 hr = StrAllocFormatted(&pwzConfigPath, L"%s/%s", IIS_CONFIG_APPHOST_ROOT, pwzSiteName); 998 hr = StrAllocFormatted(&pwzConfigPath, L"%s/%s", IIS_CONFIG_APPHOST_ROOT, pwzSiteName);
999 ExitOnFailure(hr, "failed to format web error config path"); 999 ExitOnFailure(hr, "failed to format web error config path");
1000 1000
1001 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzAppName, -1, L"/", -1)) 1001 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzAppName, -1, L"/", -1, TRUE))
1002 { 1002 {
1003 hr = StrAllocConcat(&pwzConfigPath, L"/", 0); 1003 hr = StrAllocConcat(&pwzConfigPath, L"/", 0);
1004 ExitOnFailure(hr, "failed to copy web error config path delim"); 1004 ExitOnFailure(hr, "failed to copy web error config path delim");
@@ -1325,7 +1325,7 @@ HRESULT IIS7HttpHeader(
1325 hr = StrAllocFormatted(&pwzConfigPath, L"%s/%s", IIS_CONFIG_APPHOST_ROOT, pwzSiteName); 1325 hr = StrAllocFormatted(&pwzConfigPath, L"%s/%s", IIS_CONFIG_APPHOST_ROOT, pwzSiteName);
1326 ExitOnFailure(hr, "failed to format web error config path"); 1326 ExitOnFailure(hr, "failed to format web error config path");
1327 1327
1328 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzAppName, -1, L"/", -1)) 1328 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzAppName, -1, L"/", -1, TRUE))
1329 { 1329 {
1330 hr = StrAllocConcat(&pwzConfigPath, L"/", 0); 1330 hr = StrAllocConcat(&pwzConfigPath, L"/", 0);
1331 ExitOnFailure(hr, "failed to copy web error config path delim"); 1331 ExitOnFailure(hr, "failed to copy web error config path delim");
@@ -2340,7 +2340,7 @@ HRESULT IIS7AppExtension(
2340 // 2340 //
2341 //Do not append trailing '/' for default vDir 2341 //Do not append trailing '/' for default vDir
2342 // 2342 //
2343 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzWebRoot, -1, L"/", -1)) 2343 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzWebRoot, -1, L"/", -1, TRUE))
2344 { 2344 {
2345 hr = StrAllocConcat(&pwzConfigPath, L"/", 0); 2345 hr = StrAllocConcat(&pwzConfigPath, L"/", 0);
2346 ExitOnFailure(hr, "failed to copy appext config path delim"); 2346 ExitOnFailure(hr, "failed to copy appext config path delim");
@@ -2495,7 +2495,7 @@ LExit:
2495 // 2495 //
2496 //Do not append trailing '/' for default vDir 2496 //Do not append trailing '/' for default vDir
2497 // 2497 //
2498 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzWebRoot, -1, L"/", -1)) 2498 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzWebRoot, -1, L"/", -1, TRUE))
2499 { 2499 {
2500 hr = StrAllocConcat(&pwzConfigPath, L"/", 0); 2500 hr = StrAllocConcat(&pwzConfigPath, L"/", 0);
2501 ExitOnFailure(hr, "failed to copy appext config path delim"); 2501 ExitOnFailure(hr, "failed to copy appext config path delim");
@@ -2627,7 +2627,7 @@ HRESULT IIS7DirProperties(
2627 // 2627 //
2628 //Do not append trailing '/' for default vDir 2628 //Do not append trailing '/' for default vDir
2629 // 2629 //
2630 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzWebRoot, -1, L"/", -1)) 2630 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzWebRoot, -1, L"/", -1, TRUE))
2631 { 2631 {
2632 hr = StrAllocConcat(&pwzConfigPath, L"/", 0); 2632 hr = StrAllocConcat(&pwzConfigPath, L"/", 0);
2633 ExitOnFailure(hr, "failed to copy appext config path delim"); 2633 ExitOnFailure(hr, "failed to copy appext config path delim");
@@ -3337,7 +3337,7 @@ static HRESULT CreateWebLog(
3337 ExitOnFailure(hr, "Failed get logfile element"); 3337 ExitOnFailure(hr, "Failed get logfile element");
3338 ReleaseVariant(vtProp); 3338 ReleaseVariant(vtProp);
3339 3339
3340 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pwzFormat, -1, L"none", -1)) 3340 if (CSTR_EQUAL != ::CompareStringOrdinal(pwzFormat, -1, L"none", -1, TRUE))
3341 { 3341 {
3342 hr = Iis7PutPropertyString(pLogFile, IIS_CONFIG_LOGFORMAT, pwzFormat); 3342 hr = Iis7PutPropertyString(pLogFile, IIS_CONFIG_LOGFORMAT, pwzFormat);
3343 ExitOnFailure(hr, "Failed set logfile format property"); 3343 ExitOnFailure(hr, "Failed set logfile format property");
@@ -4118,7 +4118,7 @@ static HRESULT ClearLocationTag(
4118 ExitOnFailure(hr, "Failed to get IIS location collection count"); 4118 ExitOnFailure(hr, "Failed to get IIS location collection count");
4119 4119
4120 hr = pLocation->get_Path(&bstrLocationPath); 4120 hr = pLocation->get_Path(&bstrLocationPath);
4121 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, swLocationPath, -1, bstrLocationPath, -1)) 4121 if (CSTR_EQUAL == ::CompareStringOrdinal(swLocationPath, -1, bstrLocationPath, -1, TRUE))
4122 { 4122 {
4123 hr = pLocationCollection->DeleteLocation(vtIndex); 4123 hr = pLocationCollection->DeleteLocation(vtIndex);
4124 ExitOnFailure(hr, "Failed to delete IIS location tag %ls",swLocationPath); 4124 ExitOnFailure(hr, "Failed to delete IIS location tag %ls",swLocationPath);
diff --git a/src/ext/Iis/ca/scafilter.cpp b/src/ext/Iis/ca/scafilter.cpp
index 9d9014fd..294e002e 100644
--- a/src/ext/Iis/ca/scafilter.cpp
+++ b/src/ext/Iis/ca/scafilter.cpp
@@ -158,7 +158,7 @@ HRESULT ScaFiltersInstall(
158 { 158 {
159 if (WcaIsInstalling(psf->isInstalled, psf->isAction)) 159 if (WcaIsInstalling(psf->isInstalled, psf->isAction))
160 { 160 {
161 if (!wzPreviousFilterRoot || CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, 0, wzPreviousFilterRoot, -1, psf->wzFilterRoot, -1)) 161 if (!wzPreviousFilterRoot || CSTR_EQUAL != ::CompareStringOrdinal(wzPreviousFilterRoot, -1, psf->wzFilterRoot, -1, FALSE))
162 { 162 {
163 if (pwzLoadOrder) 163 if (pwzLoadOrder)
164 { 164 {
@@ -234,7 +234,7 @@ HRESULT ScaFiltersUninstall(
234 { 234 {
235 if (WcaIsUninstalling(psf->isInstalled, psf->isAction)) 235 if (WcaIsUninstalling(psf->isInstalled, psf->isAction))
236 { 236 {
237 if (!wzPreviousFilterRoot || CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, 0, wzPreviousFilterRoot, -1, psf->wzFilterRoot, -1)) 237 if (!wzPreviousFilterRoot || CSTR_EQUAL != ::CompareStringOrdinal(wzPreviousFilterRoot, -1, psf->wzFilterRoot, -1, FALSE))
238 { 238 {
239 if (pwzLoadOrder) 239 if (pwzLoadOrder)
240 { 240 {
diff --git a/src/ext/Iis/ca/scawebappext.cpp b/src/ext/Iis/ca/scawebappext.cpp
index cf3b9dd3..2f74871c 100644
--- a/src/ext/Iis/ca/scawebappext.cpp
+++ b/src/ext/Iis/ca/scawebappext.cpp
@@ -124,7 +124,7 @@ HRESULT ScaWebAppExtensionsWrite(
124 } 124 }
125 125
126 // if verbs were specified and not the keyword "all" 126 // if verbs were specified and not the keyword "all"
127 if (pswappext->wzVerbs[0] && CSTR_EQUAL != CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, pswappext->wzVerbs, -1, L"all", -1)) 127 if (pswappext->wzVerbs[0] && CSTR_EQUAL != CompareStringOrdinal(pswappext->wzVerbs, -1, L"all", -1, TRUE))
128 { 128 {
129 hr = ::StringCchCatW(wzAppExtension, countof(wzAppExtension), L","); 129 hr = ::StringCchCatW(wzAppExtension, countof(wzAppExtension), L",");
130 ExitOnFailure(hr, "Failed to concatenate comma to app extension string"); 130 ExitOnFailure(hr, "Failed to concatenate comma to app extension string");
diff --git a/src/ext/Iis/iis_t.proj b/src/ext/Iis/iis_t.proj
index 2238d785..2e05f3f1 100644
--- a/src/ext/Iis/iis_t.proj
+++ b/src/ext/Iis/iis_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Iis.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Iis.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Iis.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Iis.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs b/src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs
index 01a89dc0..7e4912e2 100644
--- a/src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs
+++ b/src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs
@@ -1,5 +1,9 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Iis 7namespace WixToolsetTest.Iis
4{ 8{
5 using System.Linq; 9 using System.Linq;
diff --git a/src/ext/Iis/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj b/src/ext/Iis/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj
index a0a6e043..7b9afedf 100644
--- a/src/ext/Iis/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj
+++ b/src/ext/Iis/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Msmq/Msmq.wixext.sln b/src/ext/Msmq/Msmq.wixext.sln
deleted file mode 100644
index 84ef7097..00000000
--- a/src/ext/Msmq/Msmq.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.0.32126.317
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msmqca", "ca\msmqca.vcxproj", "{CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "msmq", "wixlib\msmq.wixproj", "{42493058-5FC8-4F85-9884-FF3190E084B6}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Msmq.wixext", "wixext\WixToolset.Msmq.wixext.csproj", "{B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Msmq", "test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj", "{B63DA068-338F-473B-9097-FC4E64830A2A}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Debug|Any CPU.Build.0 = Debug|Win32
24 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Debug|x86.ActiveCfg = Debug|Win32
25 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Debug|x86.Build.0 = Debug|Win32
26 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Release|Any CPU.ActiveCfg = Release|Win32
27 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Release|Any CPU.Build.0 = Release|Win32
28 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Release|x86.ActiveCfg = Release|Win32
29 {CAD56A7E-342B-4324-9DCB-BCEB8F3BC80D}.Release|x86.Build.0 = Release|Win32
30 {42493058-5FC8-4F85-9884-FF3190E084B6}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {42493058-5FC8-4F85-9884-FF3190E084B6}.Debug|Any CPU.Build.0 = Debug|x86
32 {42493058-5FC8-4F85-9884-FF3190E084B6}.Debug|x86.ActiveCfg = Debug|x86
33 {42493058-5FC8-4F85-9884-FF3190E084B6}.Debug|x86.Build.0 = Debug|x86
34 {42493058-5FC8-4F85-9884-FF3190E084B6}.Release|Any CPU.ActiveCfg = Release|x86
35 {42493058-5FC8-4F85-9884-FF3190E084B6}.Release|Any CPU.Build.0 = Release|x86
36 {42493058-5FC8-4F85-9884-FF3190E084B6}.Release|x86.ActiveCfg = Release|x86
37 {42493058-5FC8-4F85-9884-FF3190E084B6}.Release|x86.Build.0 = Release|x86
38 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Debug|x86.Build.0 = Debug|Any CPU
42 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Release|Any CPU.Build.0 = Release|Any CPU
44 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Release|x86.ActiveCfg = Release|Any CPU
45 {B990D81B-9F60-4EEE-B31D-B5D1EAA799EE}.Release|x86.Build.0 = Release|Any CPU
46 {B63DA068-338F-473B-9097-FC4E64830A2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {B63DA068-338F-473B-9097-FC4E64830A2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {B63DA068-338F-473B-9097-FC4E64830A2A}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {B63DA068-338F-473B-9097-FC4E64830A2A}.Debug|x86.Build.0 = Debug|Any CPU
50 {B63DA068-338F-473B-9097-FC4E64830A2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {B63DA068-338F-473B-9097-FC4E64830A2A}.Release|Any CPU.Build.0 = Release|Any CPU
52 {B63DA068-338F-473B-9097-FC4E64830A2A}.Release|x86.ActiveCfg = Release|Any CPU
53 {B63DA068-338F-473B-9097-FC4E64830A2A}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {5524C948-C115-4690-9BC4-44E3E963F960}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/Msmq/Msmq.wixext.slnx b/src/ext/Msmq/Msmq.wixext.slnx
new file mode 100644
index 00000000..dfcbb6ff
--- /dev/null
+++ b/src/ext/Msmq/Msmq.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/msmqca.vcxproj" Id="cad56a7e-342b-4324-9dcb-bceb8f3bc80d">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj" />
10 <Project Path="wixext/WixToolset.Msmq.wixext.csproj" />
11 <Project Path="wixlib/msmq.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/Msmq/README.md b/src/ext/Msmq/README.md
index 6ebd70e9..46491349 100644
--- a/src/ext/Msmq/README.md
+++ b/src/ext/Msmq/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Msmq.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Msmq.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Msmq/ca/msmqca.vcxproj b/src/ext/Msmq/ca/msmqca.vcxproj
index 6957c24f..afeeb9fc 100644
--- a/src/ext/Msmq/ca/msmqca.vcxproj
+++ b/src/ext/Msmq/ca/msmqca.vcxproj
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <ItemGroup Label="ProjectConfigurations"> 4 <ItemGroup Label="ProjectConfigurations">
5 <ProjectConfiguration Include="Debug|Win32"> 5 <ProjectConfiguration Include="Debug|Win32">
6 <Configuration>Debug</Configuration> 6 <Configuration>Debug</Configuration>
@@ -65,4 +65,4 @@
65 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" /> 65 <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
66 </ItemGroup> 66 </ItemGroup>
67 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 67 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
68</Project> \ No newline at end of file 68</Project>
diff --git a/src/ext/Msmq/msmq_t.proj b/src/ext/Msmq/msmq_t.proj
index 9eaab92f..639f7f77 100644
--- a/src/ext/Msmq/msmq_t.proj
+++ b/src/ext/Msmq/msmq_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Msmq.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Msmq.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Msmq.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Msmq.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs b/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
index 60335b8a..95ec7874 100644
--- a/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
+++ b/src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
@@ -1,12 +1,15 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Msmq 7namespace WixToolsetTest.Msmq
4{ 8{
5 using System.Data; 9 using System.Data;
6 using System.IO; 10 using System.IO;
7 using System.Linq; 11 using System.Linq;
8 using System.Xml.Linq; 12 using System.Xml.Linq;
9 using Microsoft.VisualStudio.TestTools.UnitTesting;
10 using WixInternal.MSTestSupport; 13 using WixInternal.MSTestSupport;
11 using WixInternal.Core.MSTestPackage; 14 using WixInternal.Core.MSTestPackage;
12 using WixToolset.Msmq; 15 using WixToolset.Msmq;
diff --git a/src/ext/Msmq/test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj b/src/ext/Msmq/test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj
index a8991c2e..f41cc2e9 100644
--- a/src/ext/Msmq/test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj
+++ b/src/ext/Msmq/test/WixToolsetTest.Msmq/WixToolsetTest.Msmq.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/NetFx/NetFx.wixext.sln b/src/ext/NetFx/NetFx.wixext.sln
deleted file mode 100644
index b8b72eb8..00000000
--- a/src/ext/NetFx/NetFx.wixext.sln
+++ /dev/null
@@ -1,105 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.3.32811.315
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netcoresearch", "netcoresearch\netcoresearch.vcxproj", "{A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}"
7EndProject
8Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netfxbe", "be\netfxbe.vcxproj", "{B65719C0-B2CC-45F9-AF33-6F147F741ADB}"
9EndProject
10Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netfxca", "ca\netfxca.vcxproj", "{F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}"
11EndProject
12Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "netfx", "wixlib\netfx.wixproj", "{45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}"
13EndProject
14Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Netfx.wixext", "wixext\WixToolset.Netfx.wixext.csproj", "{F774E291-0563-4DDD-B873-F5C31683CF4B}"
15EndProject
16Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Netfx", "test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj", "{AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}"
17EndProject
18Global
19 GlobalSection(SolutionConfigurationPlatforms) = preSolution
20 Debug|Any CPU = Debug|Any CPU
21 Debug|x64 = Debug|x64
22 Debug|x86 = Debug|x86
23 Release|Any CPU = Release|Any CPU
24 Release|x64 = Release|x64
25 Release|x86 = Release|x86
26 EndGlobalSection
27 GlobalSection(ProjectConfigurationPlatforms) = postSolution
28 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|Any CPU.ActiveCfg = Debug|Win32
29 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|Any CPU.Build.0 = Debug|Win32
30 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|x64.ActiveCfg = Debug|x64
31 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|x64.Build.0 = Debug|x64
32 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|x86.ActiveCfg = Debug|Win32
33 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Debug|x86.Build.0 = Debug|Win32
34 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|Any CPU.ActiveCfg = Release|Win32
35 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|Any CPU.Build.0 = Release|Win32
36 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|x64.ActiveCfg = Release|x64
37 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|x64.Build.0 = Release|x64
38 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|x86.ActiveCfg = Release|Win32
39 {A7FD9EF2-68CF-4C8E-AD81-3E8A6C7E1937}.Release|x86.Build.0 = Release|Win32
40 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|Any CPU.ActiveCfg = Debug|Win32
41 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|Any CPU.Build.0 = Debug|Win32
42 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|x64.ActiveCfg = Debug|x64
43 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|x64.Build.0 = Debug|x64
44 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|x86.ActiveCfg = Debug|Win32
45 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Debug|x86.Build.0 = Debug|Win32
46 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|Any CPU.ActiveCfg = Release|Win32
47 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|Any CPU.Build.0 = Release|Win32
48 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|x64.ActiveCfg = Release|x64
49 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|x64.Build.0 = Release|x64
50 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|x86.ActiveCfg = Release|Win32
51 {B65719C0-B2CC-45F9-AF33-6F147F741ADB}.Release|x86.Build.0 = Release|Win32
52 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.ActiveCfg = Debug|Win32
53 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.Build.0 = Debug|Win32
54 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x64.ActiveCfg = Debug|x64
55 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x64.Build.0 = Debug|x64
56 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.ActiveCfg = Debug|Win32
57 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.Build.0 = Debug|Win32
58 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.ActiveCfg = Release|Win32
59 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.Build.0 = Release|Win32
60 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x64.ActiveCfg = Release|x64
61 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x64.Build.0 = Release|x64
62 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.ActiveCfg = Release|Win32
63 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.Build.0 = Release|Win32
64 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Debug|Any CPU.ActiveCfg = Debug|x86
65 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Debug|Any CPU.Build.0 = Debug|x86
66 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Debug|x64.ActiveCfg = Debug|x86
67 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Debug|x86.ActiveCfg = Debug|x86
68 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Debug|x86.Build.0 = Debug|x86
69 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Release|Any CPU.ActiveCfg = Release|x86
70 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Release|Any CPU.Build.0 = Release|x86
71 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Release|x64.ActiveCfg = Release|x86
72 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Release|x86.ActiveCfg = Release|x86
73 {45E4A6AC-3190-4E17-83F0-9935FFA5DC2B}.Release|x86.Build.0 = Release|x86
74 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
75 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
76 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|x64.ActiveCfg = Debug|Any CPU
77 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|x64.Build.0 = Debug|Any CPU
78 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|x86.ActiveCfg = Debug|Any CPU
79 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Debug|x86.Build.0 = Debug|Any CPU
80 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
81 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|Any CPU.Build.0 = Release|Any CPU
82 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|x64.ActiveCfg = Release|Any CPU
83 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|x64.Build.0 = Release|Any CPU
84 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|x86.ActiveCfg = Release|Any CPU
85 {F774E291-0563-4DDD-B873-F5C31683CF4B}.Release|x86.Build.0 = Release|Any CPU
86 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
87 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|Any CPU.Build.0 = Debug|Any CPU
88 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|x64.ActiveCfg = Debug|Any CPU
89 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|x64.Build.0 = Debug|Any CPU
90 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|x86.ActiveCfg = Debug|Any CPU
91 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Debug|x86.Build.0 = Debug|Any CPU
92 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|Any CPU.ActiveCfg = Release|Any CPU
93 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|Any CPU.Build.0 = Release|Any CPU
94 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|x64.ActiveCfg = Release|Any CPU
95 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|x64.Build.0 = Release|Any CPU
96 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|x86.ActiveCfg = Release|Any CPU
97 {AABEF178-D4A2-4EE1-8E00-3EBAB23A5548}.Release|x86.Build.0 = Release|Any CPU
98 EndGlobalSection
99 GlobalSection(SolutionProperties) = preSolution
100 HideSolutionNode = FALSE
101 EndGlobalSection
102 GlobalSection(ExtensibilityGlobals) = postSolution
103 SolutionGuid = {E4566A6B-47D0-4EA0-989A-D763AC39105D}
104 EndGlobalSection
105EndGlobal
diff --git a/src/ext/NetFx/NetFx.wixext.slnx b/src/ext/NetFx/NetFx.wixext.slnx
new file mode 100644
index 00000000..9c01b2ec
--- /dev/null
+++ b/src/ext/NetFx/NetFx.wixext.slnx
@@ -0,0 +1,23 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="be/netfxbe.vcxproj" Id="b65719c0-b2cc-45f9-af33-6f147f741adb">
8 <Platform Solution="*|Any CPU" Project="Win32" />
9 </Project>
10 <Project Path="ca/netfxca.vcxproj" Id="f72d34ca-48da-4dfd-91a9-a0c78bef6981">
11 <Platform Solution="*|Any CPU" Project="Win32" />
12 </Project>
13 <Project Path="netcoresearch/netcoresearch.vcxproj" Id="a7fd9ef2-68cf-4c8e-ad81-3e8a6c7e1937">
14 <Platform Solution="*|Any CPU" Project="Win32" />
15 </Project>
16 <Project Path="test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj" />
17 <Project Path="wixext/WixToolset.Netfx.wixext.csproj" />
18 <Project Path="wixlib/netfx.wixproj">
19 <Platform Project="x86" />
20 <Build Solution="*|Any CPU" />
21 <Build Solution="*|x86" />
22 </Project>
23</Solution>
diff --git a/src/ext/NetFx/README.md b/src/ext/NetFx/README.md
index ace02de3..dcc79786 100644
--- a/src/ext/NetFx/README.md
+++ b/src/ext/NetFx/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.NetFx.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.NetFx.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/NetFx/be/netfxsearch.cpp b/src/ext/NetFx/be/netfxsearch.cpp
index 38c34e3c..6f3373d9 100644
--- a/src/ext/NetFx/be/netfxsearch.cpp
+++ b/src/ext/NetFx/be/netfxsearch.cpp
@@ -46,7 +46,7 @@ STDMETHODIMP NetfxSearchParseFromXml(
46 BextExitOnFailure(hr, "Failed to get @Id."); 46 BextExitOnFailure(hr, "Failed to get @Id.");
47 47
48 // Read type specific attributes. 48 // Read type specific attributes.
49 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"NetFxNetCoreSearch", -1)) 49 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"NetFxNetCoreSearch", -1, FALSE))
50 { 50 {
51 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH; 51 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH;
52 52
@@ -63,7 +63,7 @@ STDMETHODIMP NetfxSearchParseFromXml(
63 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSearch.sczMajorVersion); 63 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSearch.sczMajorVersion);
64 BextExitOnFailure(hr, "Failed to get @MajorVersion."); 64 BextExitOnFailure(hr, "Failed to get @MajorVersion.");
65 } 65 }
66 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"NetFxNetCoreSdkSearch", -1)) 66 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"NetFxNetCoreSdkSearch", -1, FALSE))
67 { 67 {
68 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH; 68 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH;
69 69
@@ -76,7 +76,7 @@ STDMETHODIMP NetfxSearchParseFromXml(
76 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSdkSearch.sczMajorVersion); 76 hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSdkSearch.sczMajorVersion);
77 BextExitOnFailure(hr, "Failed to get @MajorVersion."); 77 BextExitOnFailure(hr, "Failed to get @MajorVersion.");
78 } 78 }
79 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"NetFxNetCoreSdkFeatureBandSearch", -1)) 79 else if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"NetFxNetCoreSdkFeatureBandSearch", -1, FALSE))
80 { 80 {
81 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_FEATURE_BAND_SEARCH; 81 pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_FEATURE_BAND_SEARCH;
82 82
@@ -176,7 +176,7 @@ STDMETHODIMP NetfxSearchFindById(
176 { 176 {
177 NETFX_SEARCH* pSearch = &pSearches->rgSearches[i]; 177 NETFX_SEARCH* pSearch = &pSearches->rgSearches[i];
178 178
179 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pSearch->sczId, -1, wzId, -1)) 179 if (CSTR_EQUAL == ::CompareStringOrdinal(pSearch->sczId, -1, wzId, -1, FALSE))
180 { 180 {
181 *ppSearch = pSearch; 181 *ppSearch = pSearch;
182 ExitFunction1(hr = S_OK); 182 ExitFunction1(hr = S_OK);
diff --git a/src/ext/NetFx/ca/netfxca.vcxproj b/src/ext/NetFx/ca/netfxca.vcxproj
index ea9d2d90..53113693 100644
--- a/src/ext/NetFx/ca/netfxca.vcxproj
+++ b/src/ext/NetFx/ca/netfxca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/NetFx/netcoresearch/netcoresearch.cpp b/src/ext/NetFx/netcoresearch/netcoresearch.cpp
index 8c788461..1b151d8f 100644
--- a/src/ext/NetFx/netcoresearch/netcoresearch.cpp
+++ b/src/ext/NetFx/netcoresearch/netcoresearch.cpp
@@ -86,7 +86,7 @@ HRESULT GetSearchStateFromArguments(
86 86
87 wzSearchKind = argv[1]; 87 wzSearchKind = argv[1];
88 88
89 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, wzSearchKind, -1, L"runtime", -1)) 89 if (CSTR_EQUAL == ::CompareStringOrdinal(wzSearchKind, -1, L"runtime", -1, TRUE))
90 { 90 {
91 if (argc != 4) 91 if (argc != 4)
92 { 92 {
@@ -103,7 +103,7 @@ HRESULT GetSearchStateFromArguments(
103 103
104 pSearchState->Runtime.wzTargetName = wzTargetName; 104 pSearchState->Runtime.wzTargetName = wzTargetName;
105 } 105 }
106 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, wzSearchKind, -1, L"sdk", -1)) 106 else if (CSTR_EQUAL == ::CompareStringOrdinal(wzSearchKind, -1, L"sdk", -1, TRUE))
107 { 107 {
108 if (argc != 3) 108 if (argc != 3)
109 { 109 {
@@ -117,7 +117,7 @@ HRESULT GetSearchStateFromArguments(
117 hr = StrStringToUInt32(wzMajorVersion, 0, reinterpret_cast<UINT*>(&pSearchState->Sdk.dwMajorVersion)); 117 hr = StrStringToUInt32(wzMajorVersion, 0, reinterpret_cast<UINT*>(&pSearchState->Sdk.dwMajorVersion));
118 ConsoleExitOnFailure(hr, CONSOLE_COLOR_RED, "Failed to get sdk major version from: %ls", wzMajorVersion); 118 ConsoleExitOnFailure(hr, CONSOLE_COLOR_RED, "Failed to get sdk major version from: %ls", wzMajorVersion);
119 } 119 }
120 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, wzSearchKind, -1, L"sdkfeatureband", -1)) 120 else if (CSTR_EQUAL == ::CompareStringOrdinal(wzSearchKind, -1, L"sdkfeatureband", -1, TRUE))
121 { 121 {
122 if (argc != 5) 122 if (argc != 5)
123 { 123 {
@@ -208,7 +208,7 @@ static HRESULT PerformRuntimeSearch(
208 const hostfxr_dotnet_environment_framework_info* pFrameworkInfo = pInfo->frameworks + i; 208 const hostfxr_dotnet_environment_framework_info* pFrameworkInfo = pInfo->frameworks + i;
209 ReleaseVerutilVersion(pFrameworkVersion); 209 ReleaseVerutilVersion(pFrameworkVersion);
210 210
211 if (CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, wzTargetName, -1, pFrameworkInfo->name, -1)) 211 if (CSTR_EQUAL != ::CompareStringOrdinal(wzTargetName, -1, pFrameworkInfo->name, -1, TRUE))
212 { 212 {
213 continue; 213 continue;
214 } 214 }
diff --git a/src/ext/NetFx/netcoresearch/netcoresearch.vcxproj b/src/ext/NetFx/netcoresearch/netcoresearch.vcxproj
index a73192d0..3744d7ee 100644
--- a/src/ext/NetFx/netcoresearch/netcoresearch.vcxproj
+++ b/src/ext/NetFx/netcoresearch/netcoresearch.vcxproj
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 <ItemGroup Label="ProjectConfigurations"> 4 <ItemGroup Label="ProjectConfigurations">
5 <ProjectConfiguration Include="Debug|ARM64"> 5 <ProjectConfiguration Include="Debug|ARM64">
6 <Configuration>Debug</Configuration> 6 <Configuration>Debug</Configuration>
@@ -42,8 +42,8 @@
42 <PropertyGroup> 42 <PropertyGroup>
43 <NetHostPlatform>$(Platform)</NetHostPlatform> 43 <NetHostPlatform>$(Platform)</NetHostPlatform>
44 <NetHostPlatform Condition=" '$(NetHostPlatform)'=='Win32' ">x86</NetHostPlatform> 44 <NetHostPlatform Condition=" '$(NetHostPlatform)'=='Win32' ">x86</NetHostPlatform>
45 <NetHostPath>..\..\..\..\packages\runtime.win-$(NetHostPlatform).Microsoft.NETCore.DotNetAppHost.6.0.4\runtimes\win-$(NetHostPlatform)\native\</NetHostPath> 45 <NetHostPath>..\..\..\..\packages\runtime.win-$(NetHostPlatform).Microsoft.NETCore.DotNetAppHost.8.0.21\runtimes\win-$(NetHostPlatform)\native\</NetHostPath>
46 <HostfxrPath>..\..\..\..\packages\runtime.win-$(NetHostPlatform).Microsoft.NETCore.DotNetHostResolver.6.0.4\runtimes\win-$(NetHostPlatform)\native\</HostfxrPath> 46 <HostfxrPath>..\..\..\..\packages\runtime.win-$(NetHostPlatform).Microsoft.NETCore.DotNetHostResolver.8.0.21\runtimes\win-$(NetHostPlatform)\native\</HostfxrPath>
47 <ProjectAdditionalIncludeDirectories>$(NetHostPath)</ProjectAdditionalIncludeDirectories> 47 <ProjectAdditionalIncludeDirectories>$(NetHostPath)</ProjectAdditionalIncludeDirectories>
48 </PropertyGroup> 48 </PropertyGroup>
49 49
diff --git a/src/ext/NetFx/netcoresearch/packages.config b/src/ext/NetFx/netcoresearch/packages.config
index ad26db1c..235e6e08 100644
--- a/src/ext/NetFx/netcoresearch/packages.config
+++ b/src/ext/NetFx/netcoresearch/packages.config
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<packages> 2<packages>
3 <package id="runtime.win-arm64.Microsoft.NETCore.DotNetAppHost" version="6.0.4" targetFramework="native" /> 3 <package id="runtime.win-arm64.Microsoft.NETCore.DotNetAppHost" version="8.0.21" targetFramework="native" />
4 <package id="runtime.win-x64.Microsoft.NETCore.DotNetAppHost" version="6.0.4" targetFramework="native" /> 4 <package id="runtime.win-x64.Microsoft.NETCore.DotNetAppHost" version="8.0.21" targetFramework="native" />
5 <package id="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" version="6.0.4" targetFramework="native" /> 5 <package id="runtime.win-x86.Microsoft.NETCore.DotNetAppHost" version="8.0.21" targetFramework="native" />
6 <package id="runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver" version="6.0.4" targetFramework="native" /> 6 <package id="runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver" version="8.0.21" targetFramework="native" />
7 <package id="runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" version="6.0.4" targetFramework="native" /> 7 <package id="runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" version="8.0.21" targetFramework="native" />
8 <package id="runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" version="6.0.4" targetFramework="native" /> 8 <package id="runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" version="8.0.21" targetFramework="native" />
9</packages> \ No newline at end of file 9</packages>
diff --git a/src/ext/NetFx/netfx_t.proj b/src/ext/NetFx/netfx_t.proj
index 1c1b8a61..86996e42 100644
--- a/src/ext/NetFx/netfx_t.proj
+++ b/src/ext/NetFx/netfx_t.proj
@@ -4,7 +4,7 @@
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="wixlib\netfx.wixproj" /> 6 <ProjectReference Include="wixlib\netfx.wixproj" />
7 <ProjectReference Include="test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj" Targets="Test" /> 7 <ProjectReference Include="test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj" />
8 <ProjectReference Include="wixext\WixToolset.Netfx.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 8 <ProjectReference Include="wixext\WixToolset.Netfx.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
9 </ItemGroup> 9 </ItemGroup>
10 10
@@ -23,4 +23,8 @@
23 23
24 <Delete Files="$(ArtifactsFolder)WixToolset.NetFx.wixext.*.nupkg" /> 24 <Delete Files="$(ArtifactsFolder)WixToolset.NetFx.wixext.*.nupkg" />
25 </Target> 25 </Target>
26
27 <Target Name="WixTest">
28 <MSBuild Projects="test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj" Targets="Test" />
29 </Target>
26</Project> 30</Project>
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
index 37f715bf..381270d4 100644
--- a/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
@@ -1,5 +1,9 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Netfx 7namespace WixToolsetTest.Netfx
4{ 8{
5 using System.IO; 9 using System.IO;
diff --git a/src/ext/NetFx/test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj b/src/ext/NetFx/test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj
index bdca49e6..c7f01717 100644
--- a/src/ext/NetFx/test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj
+++ b/src/ext/NetFx/test/WixToolsetTest.Netfx/WixToolsetTest.Netfx.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/PowerShell/PowerShell.wixext.sln b/src/ext/PowerShell/PowerShell.wixext.sln
deleted file mode 100644
index e1e6a7d8..00000000
--- a/src/ext/PowerShell/PowerShell.wixext.sln
+++ /dev/null
@@ -1,63 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30611.23
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "powershell", "wixlib\powershell.wixproj", "{9D4CCDFC-840C-4D4E-A9B0-3D6015480645}"
7EndProject
8Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.PowerShell.wixext", "wixext\WixToolset.PowerShell.wixext.csproj", "{6F1482DF-1598-4D88-BDAA-B9D0E0242139}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.PowerShell", "test\WixToolsetTest.PowerShell\WixToolsetTest.PowerShell.csproj", "{BFD10109-F4F3-4530-BE3B-802342D411F7}"
11EndProject
12Global
13 GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 Debug|Any CPU = Debug|Any CPU
15 Debug|x64 = Debug|x64
16 Debug|x86 = Debug|x86
17 Release|Any CPU = Release|Any CPU
18 Release|x64 = Release|x64
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Debug|Any CPU.ActiveCfg = Debug|x86
23 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Debug|Any CPU.Build.0 = Debug|x86
24 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Debug|x64.ActiveCfg = Debug|x86
25 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Debug|x86.ActiveCfg = Debug|x86
26 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Debug|x86.Build.0 = Debug|x86
27 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Release|Any CPU.ActiveCfg = Release|x86
28 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Release|Any CPU.Build.0 = Release|x86
29 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Release|x64.ActiveCfg = Release|x86
30 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Release|x86.ActiveCfg = Release|x86
31 {9D4CCDFC-840C-4D4E-A9B0-3D6015480645}.Release|x86.Build.0 = Release|x86
32 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
33 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|Any CPU.Build.0 = Debug|Any CPU
34 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|x64.ActiveCfg = Debug|Any CPU
35 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|x64.Build.0 = Debug|Any CPU
36 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|x86.ActiveCfg = Debug|Any CPU
37 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Debug|x86.Build.0 = Debug|Any CPU
38 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|Any CPU.ActiveCfg = Release|Any CPU
39 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|Any CPU.Build.0 = Release|Any CPU
40 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|x64.ActiveCfg = Release|Any CPU
41 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|x64.Build.0 = Release|Any CPU
42 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|x86.ActiveCfg = Release|Any CPU
43 {6F1482DF-1598-4D88-BDAA-B9D0E0242139}.Release|x86.Build.0 = Release|Any CPU
44 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|x64.ActiveCfg = Debug|Any CPU
47 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|x64.Build.0 = Debug|Any CPU
48 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Debug|x86.Build.0 = Debug|Any CPU
50 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|Any CPU.Build.0 = Release|Any CPU
52 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|x64.ActiveCfg = Release|Any CPU
53 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|x64.Build.0 = Release|Any CPU
54 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|x86.ActiveCfg = Release|Any CPU
55 {BFD10109-F4F3-4530-BE3B-802342D411F7}.Release|x86.Build.0 = Release|Any CPU
56 EndGlobalSection
57 GlobalSection(SolutionProperties) = preSolution
58 HideSolutionNode = FALSE
59 EndGlobalSection
60 GlobalSection(ExtensibilityGlobals) = postSolution
61 SolutionGuid = {60A3EA0F-9313-47F8-BF6B-74478A57B577}
62 EndGlobalSection
63EndGlobal
diff --git a/src/ext/PowerShell/PowerShell.wixext.slnx b/src/ext/PowerShell/PowerShell.wixext.slnx
new file mode 100644
index 00000000..76dd22df
--- /dev/null
+++ b/src/ext/PowerShell/PowerShell.wixext.slnx
@@ -0,0 +1,14 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="test/WixToolsetTest.PowerShell/WixToolsetTest.PowerShell.csproj" />
8 <Project Path="wixext/WixToolset.PowerShell.wixext.csproj" />
9 <Project Path="wixlib/powershell.wixproj">
10 <Platform Project="x86" />
11 <Build Solution="*|Any CPU" />
12 <Build Solution="*|x86" />
13 </Project>
14</Solution>
diff --git a/src/ext/PowerShell/README.md b/src/ext/PowerShell/README.md
index 7ee2f5e2..9cea557f 100644
--- a/src/ext/PowerShell/README.md
+++ b/src/ext/PowerShell/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.PowerShell.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.PowerShell.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/PowerShell/powershell_t.proj b/src/ext/PowerShell/powershell_t.proj
index a1d88013..8c12bdef 100644
--- a/src/ext/PowerShell/powershell_t.proj
+++ b/src/ext/PowerShell/powershell_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.PowerShell\WixToolsetTest.Powershell.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.PowerShell\WixToolsetTest.Powershell.csproj" />
7 <ProjectReference Include="wixext\WixToolset.PowerShell.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.PowerShell.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.PowerShell.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.PowerShell.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.PowerShell\WixToolsetTest.Powershell.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/PowerShell/test/WixToolsetTest.PowerShell/PowerShellExtensionFixture.cs b/src/ext/PowerShell/test/WixToolsetTest.PowerShell/PowerShellExtensionFixture.cs
index a1dc3282..31090bf6 100644
--- a/src/ext/PowerShell/test/WixToolsetTest.PowerShell/PowerShellExtensionFixture.cs
+++ b/src/ext/PowerShell/test/WixToolsetTest.PowerShell/PowerShellExtensionFixture.cs
@@ -1,8 +1,11 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.PowerShell 7namespace WixToolsetTest.PowerShell
4{ 8{
5 using Microsoft.VisualStudio.TestTools.UnitTesting;
6 using WixInternal.MSTestSupport; 9 using WixInternal.MSTestSupport;
7 using WixInternal.Core.MSTestPackage; 10 using WixInternal.Core.MSTestPackage;
8 using WixToolset.PowerShell; 11 using WixToolset.PowerShell;
diff --git a/src/ext/PowerShell/test/WixToolsetTest.PowerShell/WixToolsetTest.Powershell.csproj b/src/ext/PowerShell/test/WixToolsetTest.PowerShell/WixToolsetTest.Powershell.csproj
index cff13cb7..9f46f94e 100644
--- a/src/ext/PowerShell/test/WixToolsetTest.PowerShell/WixToolsetTest.Powershell.csproj
+++ b/src/ext/PowerShell/test/WixToolsetTest.PowerShell/WixToolsetTest.Powershell.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Sql/README.md b/src/ext/Sql/README.md
index adc543c8..156c7761 100644
--- a/src/ext/Sql/README.md
+++ b/src/ext/Sql/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Sql.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Sql.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Sql/Sql.wixext.sln b/src/ext/Sql/Sql.wixext.sln
deleted file mode 100644
index 6a2a132a..00000000
--- a/src/ext/Sql/Sql.wixext.sln
+++ /dev/null
@@ -1,61 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30204.135
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlca", "ca\sqlca.vcxproj", "{4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "sql", "wixlib\sql.wixproj", "{9ACF1A20-D801-45CC-A463-F9D13E506AA3}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Sql.wixext", "wixext\WixToolset.Sql.wixext.csproj", "{0E05519A-0045-4AEC-BD0C-D9205FF1468F}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Sql", "test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj", "{FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x86 = Debug|x86
18 Release|Any CPU = Release|Any CPU
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Debug|Any CPU.ActiveCfg = Debug|Win32
23 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Debug|Any CPU.Build.0 = Debug|Win32
24 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Debug|x86.ActiveCfg = Debug|Win32
25 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Debug|x86.Build.0 = Debug|Win32
26 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Release|Any CPU.ActiveCfg = Release|Win32
27 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Release|Any CPU.Build.0 = Release|Win32
28 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Release|x86.ActiveCfg = Release|Win32
29 {4DCA6E4B-A1F1-4450-BC2D-94AC20F31935}.Release|x86.Build.0 = Release|Win32
30 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Debug|Any CPU.ActiveCfg = Debug|x86
31 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Debug|Any CPU.Build.0 = Debug|x86
32 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Debug|x86.ActiveCfg = Debug|x86
33 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Debug|x86.Build.0 = Debug|x86
34 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Release|Any CPU.ActiveCfg = Release|x86
35 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Release|Any CPU.Build.0 = Release|x86
36 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Release|x86.ActiveCfg = Release|x86
37 {9ACF1A20-D801-45CC-A463-F9D13E506AA3}.Release|x86.Build.0 = Release|x86
38 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Debug|x86.ActiveCfg = Debug|Any CPU
41 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Debug|x86.Build.0 = Debug|Any CPU
42 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Release|Any CPU.ActiveCfg = Release|Any CPU
43 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Release|Any CPU.Build.0 = Release|Any CPU
44 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Release|x86.ActiveCfg = Release|Any CPU
45 {0E05519A-0045-4AEC-BD0C-D9205FF1468F}.Release|x86.Build.0 = Release|Any CPU
46 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Debug|x86.Build.0 = Debug|Any CPU
50 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Release|Any CPU.Build.0 = Release|Any CPU
52 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Release|x86.ActiveCfg = Release|Any CPU
53 {FE72A369-03CA-4EBC-BC7B-A8BBF5BBD3E0}.Release|x86.Build.0 = Release|Any CPU
54 EndGlobalSection
55 GlobalSection(SolutionProperties) = preSolution
56 HideSolutionNode = FALSE
57 EndGlobalSection
58 GlobalSection(ExtensibilityGlobals) = postSolution
59 SolutionGuid = {DEFEE3BB-E557-4B77-A85C-ECA19D6F5DF5}
60 EndGlobalSection
61EndGlobal
diff --git a/src/ext/Sql/Sql.wixext.slnx b/src/ext/Sql/Sql.wixext.slnx
new file mode 100644
index 00000000..ec141cdb
--- /dev/null
+++ b/src/ext/Sql/Sql.wixext.slnx
@@ -0,0 +1,15 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x86" />
5 </Configurations>
6 <Project Path="ca/sqlca.vcxproj" Id="4dca6e4b-a1f1-4450-bc2d-94ac20f31935">
7 <Platform Project="Win32" />
8 </Project>
9 <Project Path="test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj" />
10 <Project Path="wixext/WixToolset.Sql.wixext.csproj" />
11 <Project Path="wixlib/sql.wixproj">
12 <Platform Project="x86" />
13 <Build />
14 </Project>
15</Solution>
diff --git a/src/ext/Sql/ca/sqlca.vcxproj b/src/ext/Sql/ca/sqlca.vcxproj
index 4013351f..38ed4c8e 100644
--- a/src/ext/Sql/ca/sqlca.vcxproj
+++ b/src/ext/Sql/ca/sqlca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Sql/sql_t.proj b/src/ext/Sql/sql_t.proj
index 92c908d2..42450510 100644
--- a/src/ext/Sql/sql_t.proj
+++ b/src/ext/Sql/sql_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Sql.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Sql.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Sql.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Sql.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Sql/test/WixToolsetTest.Sql/SqlExtensionFixture.cs b/src/ext/Sql/test/WixToolsetTest.Sql/SqlExtensionFixture.cs
index 14ca14c3..0133d082 100644
--- a/src/ext/Sql/test/WixToolsetTest.Sql/SqlExtensionFixture.cs
+++ b/src/ext/Sql/test/WixToolsetTest.Sql/SqlExtensionFixture.cs
@@ -1,9 +1,12 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Sql 7namespace WixToolsetTest.Sql
4{ 8{
5 using System.Linq; 9 using System.Linq;
6 using Microsoft.VisualStudio.TestTools.UnitTesting;
7 using WixInternal.MSTestSupport; 10 using WixInternal.MSTestSupport;
8 using WixInternal.Core.MSTestPackage; 11 using WixInternal.Core.MSTestPackage;
9 using WixToolset.Sql; 12 using WixToolset.Sql;
diff --git a/src/ext/Sql/test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj b/src/ext/Sql/test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj
index 62345258..f417f489 100644
--- a/src/ext/Sql/test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj
+++ b/src/ext/Sql/test/WixToolsetTest.Sql/WixToolsetTest.Sql.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/UI/README.md b/src/ext/UI/README.md
index 19d5ba0c..5b040f13 100644
--- a/src/ext/UI/README.md
+++ b/src/ext/UI/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.UI.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.UI.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/UI/UI.wixext.sln b/src/ext/UI/UI.wixext.sln
deleted file mode 100644
index c71826dc..00000000
--- a/src/ext/UI/UI.wixext.sln
+++ /dev/null
@@ -1,75 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30320.27
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uica", "ca\uica.vcxproj", "{F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "ui", "wixlib\ui.wixproj", "{2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.UI.wixext", "wixext\WixToolset.UI.wixext.csproj", "{33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.UI", "test\WixToolsetTest.UI\WixToolsetTest.UI.csproj", "{A37CC793-F659-4C77-A01C-D183023B6880}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x64 = Debug|x64
18 Debug|x86 = Debug|x86
19 Release|Any CPU = Release|Any CPU
20 Release|x64 = Release|x64
21 Release|x86 = Release|x86
22 EndGlobalSection
23 GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.ActiveCfg = Debug|Win32
25 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|Any CPU.Build.0 = Debug|Win32
26 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x64.ActiveCfg = Debug|Win32
27 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.ActiveCfg = Debug|Win32
28 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Debug|x86.Build.0 = Debug|Win32
29 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.ActiveCfg = Release|Win32
30 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|Any CPU.Build.0 = Release|Win32
31 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x64.ActiveCfg = Release|Win32
32 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.ActiveCfg = Release|Win32
33 {F72D34CA-48DA-4DFD-91A9-A0C78BEF6981}.Release|x86.Build.0 = Release|Win32
34 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Debug|Any CPU.ActiveCfg = Debug|x86
35 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Debug|Any CPU.Build.0 = Debug|x86
36 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Debug|x64.ActiveCfg = Debug|x86
37 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Debug|x86.ActiveCfg = Debug|x86
38 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Debug|x86.Build.0 = Debug|x86
39 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Release|Any CPU.ActiveCfg = Release|x86
40 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Release|Any CPU.Build.0 = Release|x86
41 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Release|x64.ActiveCfg = Release|x86
42 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Release|x86.ActiveCfg = Release|x86
43 {2D4FF07B-26F8-4BEF-B41C-E4383F86DC32}.Release|x86.Build.0 = Release|x86
44 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
45 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
46 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|x64.ActiveCfg = Debug|Any CPU
47 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|x64.Build.0 = Debug|Any CPU
48 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Debug|x86.Build.0 = Debug|Any CPU
50 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|Any CPU.Build.0 = Release|Any CPU
52 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|x64.ActiveCfg = Release|Any CPU
53 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|x64.Build.0 = Release|Any CPU
54 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|x86.ActiveCfg = Release|Any CPU
55 {33F6ABF5-FA13-4B73-99FA-F9BBA894DD9A}.Release|x86.Build.0 = Release|Any CPU
56 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|Any CPU.Build.0 = Debug|Any CPU
58 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|x64.ActiveCfg = Debug|Any CPU
59 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|x64.Build.0 = Debug|Any CPU
60 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|x86.ActiveCfg = Debug|Any CPU
61 {A37CC793-F659-4C77-A01C-D183023B6880}.Debug|x86.Build.0 = Debug|Any CPU
62 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|Any CPU.ActiveCfg = Release|Any CPU
63 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|Any CPU.Build.0 = Release|Any CPU
64 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|x64.ActiveCfg = Release|Any CPU
65 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|x64.Build.0 = Release|Any CPU
66 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|x86.ActiveCfg = Release|Any CPU
67 {A37CC793-F659-4C77-A01C-D183023B6880}.Release|x86.Build.0 = Release|Any CPU
68 EndGlobalSection
69 GlobalSection(SolutionProperties) = preSolution
70 HideSolutionNode = FALSE
71 EndGlobalSection
72 GlobalSection(ExtensibilityGlobals) = postSolution
73 SolutionGuid = {1EB72678-984C-4F8F-9C3C-8D0FA2450E86}
74 EndGlobalSection
75EndGlobal
diff --git a/src/ext/UI/UI.wixext.slnx b/src/ext/UI/UI.wixext.slnx
new file mode 100644
index 00000000..13296d3e
--- /dev/null
+++ b/src/ext/UI/UI.wixext.slnx
@@ -0,0 +1,18 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="ca/uica.vcxproj" Id="f72d34ca-48da-4dfd-91a9-a0c78bef6981">
8 <Platform Project="Win32" />
9 <Build Solution="*|x64" Project="false" />
10 </Project>
11 <Project Path="test/WixToolsetTest.UI/WixToolsetTest.UI.csproj" />
12 <Project Path="wixext/WixToolset.UI.wixext.csproj" />
13 <Project Path="wixlib/ui.wixproj">
14 <Platform Project="x86" />
15 <Build Solution="*|Any CPU" />
16 <Build Solution="*|x86" />
17 </Project>
18</Solution>
diff --git a/src/ext/UI/ca/uica.vcxproj b/src/ext/UI/ca/uica.vcxproj
index 39c0b404..aa81d5e3 100644
--- a/src/ext/UI/ca/uica.vcxproj
+++ b/src/ext/UI/ca/uica.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/UI/test/WixToolsetTest.UI/TestData/WixUI_Advanced/Package.wxs b/src/ext/UI/test/WixToolsetTest.UI/TestData/WixUI_Advanced/Package.wxs
index 095a4546..5595e8af 100644
--- a/src/ext/UI/test/WixToolsetTest.UI/TestData/WixUI_Advanced/Package.wxs
+++ b/src/ext/UI/test/WixToolsetTest.UI/TestData/WixUI_Advanced/Package.wxs
@@ -1,16 +1,6 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
2 <Package Name="WixUI_Advanced" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> 2 <Package Name="WixUI_Advanced" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 3 <File Source="example.txt" Directory="APPLICATIONFOLDER" />
4
5 <Feature Id="ProductFeature" Title="MsiPackage">
6 <ComponentGroupRef Id="ProductComponents" />
7 </Feature>
8
9 <ComponentGroup Id="ProductComponents" Directory="APPLICATIONFOLDER">
10 <Component>
11 <File Source="example.txt" />
12 </Component>
13 </ComponentGroup>
14 4
15 <ui:WixUI Id="WixUI_Advanced" /> 5 <ui:WixUI Id="WixUI_Advanced" />
16 <Property Id="ApplicationFolderName" Value="MyProgram" /> 6 <Property Id="ApplicationFolderName" Value="MyProgram" />
@@ -18,10 +8,8 @@
18 </Package> 8 </Package>
19 9
20 <Fragment> 10 <Fragment>
21 <StandardDirectory Id="ProgramFilesFolder"> 11 <DirectoryRef Id="INSTALLFOLDER">
22 <Directory Id="INSTALLFOLDER" Name="MsiPackage"> 12 <Directory Id="APPLICATIONFOLDER" />
23 <Directory Id="APPLICATIONFOLDER" /> 13 </DirectoryRef>
24 </Directory>
25 </StandardDirectory>
26 </Fragment> 14 </Fragment>
27</Wix> 15</Wix>
diff --git a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
index ae3a49be..59b4a01e 100644
--- a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
+++ b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
@@ -1,5 +1,9 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.UI 7namespace WixToolsetTest.UI
4{ 8{
5 using System.IO; 9 using System.IO;
@@ -33,6 +37,7 @@ namespace WixToolsetTest.UI
33 }, results.Where(r => r.StartsWith("Binary:")).ToArray()); 37 }, results.Where(r => r.StartsWith("Binary:")).ToArray());
34 WixAssert.CompareLineByLine(new[] 38 WixAssert.CompareLineByLine(new[]
35 { 39 {
40 "CustomAction:WixSetDefaultPerMachine64Folder\t51\tWixPerMachineFolder\t[ProgramFiles64Folder][ApplicationFolderName]\t",
36 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t", 41 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t",
37 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", 42 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t",
38 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", 43 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t",
@@ -66,6 +71,7 @@ namespace WixToolsetTest.UI
66 }, results.Where(r => r.StartsWith("Binary:")).ToArray()); 71 }, results.Where(r => r.StartsWith("Binary:")).ToArray());
67 WixAssert.CompareLineByLine(new[] 72 WixAssert.CompareLineByLine(new[]
68 { 73 {
74 "CustomAction:WixSetDefaultPerMachine64Folder\t51\tWixPerMachineFolder\t[ProgramFiles64Folder][ApplicationFolderName]\t",
69 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t", 75 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t",
70 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", 76 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t",
71 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", 77 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t",
@@ -94,6 +100,7 @@ namespace WixToolsetTest.UI
94 }, results.Where(r => r.StartsWith("Binary:")).ToArray()); 100 }, results.Where(r => r.StartsWith("Binary:")).ToArray());
95 WixAssert.CompareLineByLine(new[] 101 WixAssert.CompareLineByLine(new[]
96 { 102 {
103 "CustomAction:WixSetDefaultPerMachine64Folder\t51\tWixPerMachineFolder\t[ProgramFiles64Folder][ApplicationFolderName]\t",
97 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t", 104 "CustomAction:WixSetDefaultPerMachineFolder\t51\tWixPerMachineFolder\t[ProgramFilesFolder][ApplicationFolderName]\t",
98 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", 105 "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t",
99 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", 106 "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t",
diff --git a/src/ext/UI/test/WixToolsetTest.UI/WixToolsetTest.UI.csproj b/src/ext/UI/test/WixToolsetTest.UI/WixToolsetTest.UI.csproj
index 132920c5..fd2a4e69 100644
--- a/src/ext/UI/test/WixToolsetTest.UI/WixToolsetTest.UI.csproj
+++ b/src/ext/UI/test/WixToolsetTest.UI/WixToolsetTest.UI.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/UI/ui_t.proj b/src/ext/UI/ui_t.proj
index 6ac63cfe..895c0323 100644
--- a/src/ext/UI/ui_t.proj
+++ b/src/ext/UI/ui_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.UI\WixToolsetTest.UI.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.UI\WixToolsetTest.UI.csproj" />
7 <ProjectReference Include="wixext\WixToolset.UI.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.UI.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.UI.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.UI.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.UI\WixToolsetTest.UI.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/UI/wixlib/WixUI_Advanced.wxs b/src/ext/UI/wixlib/WixUI_Advanced.wxs
index 35955a1a..6eb05949 100644
--- a/src/ext/UI/wixlib/WixUI_Advanced.wxs
+++ b/src/ext/UI/wixlib/WixUI_Advanced.wxs
@@ -22,6 +22,8 @@ Todo:
22<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 22<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
23 <?foreach WIXUIARCH in X86;X64;A64 ?> 23 <?foreach WIXUIARCH in X86;X64;A64 ?>
24 <Fragment> 24 <Fragment>
25 <WixVariable Id="WixUIAdvancedArch" Value="$(WIXUIARCH)" />
26
25 <UI Id="WixUI_Advanced_$(WIXUIARCH)"> 27 <UI Id="WixUI_Advanced_$(WIXUIARCH)">
26 <Publish Dialog="BrowseDlg" Control="OK" Event="CheckTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" /> 28 <Publish Dialog="BrowseDlg" Control="OK" Event="CheckTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" />
27 29
@@ -56,19 +58,22 @@ Todo:
56 58
57 <CustomAction Id="WixSetDefaultPerUserFolder" Property="WixPerUserFolder" Value="[LocalAppDataFolder]Apps\[ApplicationFolderName]" Execute="immediate" /> 59 <CustomAction Id="WixSetDefaultPerUserFolder" Property="WixPerUserFolder" Value="[LocalAppDataFolder]Apps\[ApplicationFolderName]" Execute="immediate" />
58 <CustomAction Id="WixSetDefaultPerMachineFolder" Property="WixPerMachineFolder" Value="[ProgramFilesFolder][ApplicationFolderName]" Execute="immediate" /> 60 <CustomAction Id="WixSetDefaultPerMachineFolder" Property="WixPerMachineFolder" Value="[ProgramFilesFolder][ApplicationFolderName]" Execute="immediate" />
61 <CustomAction Id="WixSetDefaultPerMachine64Folder" Property="WixPerMachineFolder" Value="[ProgramFiles64Folder][ApplicationFolderName]" Execute="immediate" />
59 <CustomAction Id="WixSetPerUserFolder" Property="APPLICATIONFOLDER" Value="[WixPerUserFolder]" Execute="immediate" /> 62 <CustomAction Id="WixSetPerUserFolder" Property="APPLICATIONFOLDER" Value="[WixPerUserFolder]" Execute="immediate" />
60 <CustomAction Id="WixSetPerMachineFolder" Property="APPLICATIONFOLDER" Value="[WixPerMachineFolder]" Execute="immediate" /> 63 <CustomAction Id="WixSetPerMachineFolder" Property="APPLICATIONFOLDER" Value="[WixPerMachineFolder]" Execute="immediate" />
61 64
62 <InstallExecuteSequence> 65 <InstallExecuteSequence>
63 <Custom Action="WixSetDefaultPerUserFolder" Before="CostFinalize" /> 66 <Custom Action="WixSetDefaultPerUserFolder" Before="CostFinalize" />
64 <Custom Action="WixSetDefaultPerMachineFolder" After="WixSetDefaultPerUserFolder" /> 67 <Custom Action="WixSetDefaultPerMachineFolder" After="WixSetDefaultPerUserFolder" Condition="&quot;!(wix.WixUIAdvancedArch)&quot;=&quot;X86&quot;" />
65 <Custom Action="WixSetPerUserFolder" After="WixSetDefaultPerMachineFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=&quot;&quot; OR (ALLUSERS=2 AND (NOT Privileged)))" /> 68 <Custom Action="WixSetDefaultPerMachine64Folder" After="WixSetDefaultPerMachineFolder" Condition="&quot;!(wix.WixUIAdvancedArch)&quot;=&quot;X64&quot; OR &quot;!(wix.WixUIAdvancedArch)&quot;=&quot;A64&quot;" />
69 <Custom Action="WixSetPerUserFolder" After="WixSetDefaultPerMachine64Folder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=&quot;&quot; OR (ALLUSERS=2 AND (NOT Privileged)))" />
66 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" /> 70 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" />
67 </InstallExecuteSequence> 71 </InstallExecuteSequence>
68 <InstallUISequence> 72 <InstallUISequence>
69 <Custom Action="WixSetDefaultPerUserFolder" Before="CostFinalize" /> 73 <Custom Action="WixSetDefaultPerUserFolder" Before="CostFinalize" />
70 <Custom Action="WixSetDefaultPerMachineFolder" After="WixSetDefaultPerUserFolder" /> 74 <Custom Action="WixSetDefaultPerMachineFolder" After="WixSetDefaultPerUserFolder" Condition="&quot;!(wix.WixUIAdvancedArch)&quot;=&quot;X86&quot;" />
71 <Custom Action="WixSetPerUserFolder" After="WixSetDefaultPerMachineFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=&quot;&quot; OR (ALLUSERS=2 AND (NOT Privileged)))" /> 75 <Custom Action="WixSetDefaultPerMachine64Folder" After="WixSetDefaultPerMachineFolder" Condition="&quot;!(wix.WixUIAdvancedArch)&quot;=&quot;X64&quot; OR &quot;!(wix.WixUIAdvancedArch)&quot;=&quot;A64&quot;" />
76 <Custom Action="WixSetPerUserFolder" After="WixSetDefaultPerMachine64Folder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=&quot;&quot; OR (ALLUSERS=2 AND (NOT Privileged)))" />
72 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" /> 77 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" />
73 </InstallUISequence> 78 </InstallUISequence>
74 79
diff --git a/src/ext/UI/wixlib/WixUI_uk-UA.wxl b/src/ext/UI/wixlib/WixUI_uk-UA.wxl
index d27f226e..645b6eee 100644
--- a/src/ext/UI/wixlib/WixUI_uk-UA.wxl
+++ b/src/ext/UI/wixlib/WixUI_uk-UA.wxl
@@ -17,8 +17,8 @@
17 <String Id="AdvancedWelcomeEulaDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 17 <String Id="AdvancedWelcomeEulaDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
18 <String Id="AdvancedWelcomeEulaDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}ОзнайомтеÑÑ Ð· ліцензійною угодою Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 18 <String Id="AdvancedWelcomeEulaDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}ОзнайомтеÑÑ Ð· ліцензійною угодою Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
19 <String Id="AdvancedWelcomeEulaDlgLicenseAcceptedCheckBox" Overridable="yes" Value="Я &amp;приймаю умови ліцензійної угоди" /> 19 <String Id="AdvancedWelcomeEulaDlgLicenseAcceptedCheckBox" Overridable="yes" Value="Я &amp;приймаю умови ліцензійної угоди" />
20 <String Id="AdvancedWelcomeEulaDlgDescriptionPerMachine" Overridable="yes" Value="Щоб інÑталювати продукт із параметрами за промовчаннÑм Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб змінити параметри інÑталÑції, натиÑніть кнопку &quot;Додатково&quot;." /> 20 <String Id="AdvancedWelcomeEulaDlgDescriptionPerMachine" Overridable="yes" Value="Щоб інÑталювати продукт із параметрами за замовчуваннÑм Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб змінити параметри інÑталÑції, натиÑніть кнопку &quot;Додатково&quot;." />
21 <String Id="AdvancedWelcomeEulaDlgDescriptionPerUser" Overridable="yes" Value="Щоб інÑталювати продукт із параметрами за промовчаннÑм Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб змінити параметри інÑталÑції, натиÑніть кнопку &quot;Додатково&quot;." /> 21 <String Id="AdvancedWelcomeEulaDlgDescriptionPerUser" Overridable="yes" Value="Щоб інÑталювати продукт із параметрами за замовчуваннÑм Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб змінити параметри інÑталÑції, натиÑніть кнопку &quot;Додатково&quot;." />
22 <String Id="AdvancedWelcomeEulaDlgInstall" Overridable="yes" Value="&amp;ІнÑталювати" /> 22 <String Id="AdvancedWelcomeEulaDlgInstall" Overridable="yes" Value="&amp;ІнÑталювати" />
23 <String Id="AdvancedWelcomeEulaDlgAdvanced" Overridable="yes" Value="Д&amp;одатково" /> 23 <String Id="AdvancedWelcomeEulaDlgAdvanced" Overridable="yes" Value="Д&amp;одатково" />
24 <String Id="Advanced_Font_Normal_Size" Overridable="yes" Value="8" /> 24 <String Id="Advanced_Font_Normal_Size" Overridable="yes" Value="8" />
@@ -49,8 +49,8 @@
49 <String Id="CustomizeDlgReset" Overridable="yes" Value="&amp;СкиданнÑ" /> 49 <String Id="CustomizeDlgReset" Overridable="yes" Value="&amp;СкиданнÑ" />
50 <String Id="CustomizeDlgDiskCost" Overridable="yes" Value="ВикориÑÑ‚Ð°Ð½Ð½Ñ &amp;диÑкового проÑтору" /> 50 <String Id="CustomizeDlgDiskCost" Overridable="yes" Value="ВикориÑÑ‚Ð°Ð½Ð½Ñ &amp;диÑкового проÑтору" />
51 <String Id="CustomizeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 51 <String Id="CustomizeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
52 <String Id="CustomizeDlgText" Overridable="yes" Value="СпоÑіб інÑталÑції компонентів можна змінити, клацаючи піктограми в дереві нижче." /> 52 <String Id="CustomizeDlgText" Overridable="yes" Value="СпоÑіб інÑталÑції компонентів можна змінити, натиÑкаючи піктограми в дереві нижче." />
53 <String Id="CustomizeDlgDescription" Overridable="yes" Value="Виберіть ÑпоÑіб інÑталÑції компонентів." /> 53 <String Id="CustomizeDlgDescription" Overridable="yes" Value="Оберіть ÑпоÑіб інÑталÑції компонентів." />
54 <String Id="CustomizeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вибіркова інÑталÑціÑ" /> 54 <String Id="CustomizeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вибіркова інÑталÑціÑ" />
55 <String Id="CustomizeDlgItemDescription" Overridable="yes" Value="CustomizeDlgItemDescription-CustomizeDlgItemDescription" /> 55 <String Id="CustomizeDlgItemDescription" Overridable="yes" Value="CustomizeDlgItemDescription-CustomizeDlgItemDescription" />
56 <String Id="CustomizeDlgItemSize" Overridable="yes" Value="CustomizeDlgItemSize-CustomizeDlgItemSize" /> 56 <String Id="CustomizeDlgItemSize" Overridable="yes" Value="CustomizeDlgItemSize-CustomizeDlgItemSize" />
@@ -59,8 +59,8 @@
59 59
60 <String Id="DiskCostDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 60 <String Id="DiskCostDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
61 <String Id="DiskCostDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 61 <String Id="DiskCostDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
62 <String Id="DiskCostDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції вибраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або вибрати інші диÑки призначеннÑ." /> 62 <String Id="DiskCostDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції обраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або вибрати інші диÑки призначеннÑ." />
63 <String Id="DiskCostDlgDescription" Overridable="yes" Value="ДиÑковий проÑтір, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції вибраних компонентів." /> 63 <String Id="DiskCostDlgDescription" Overridable="yes" Value="ДиÑковий проÑтір, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції обраних компонентів." />
64 <String Id="DiskCostDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вимоги до диÑкового проÑтору" /> 64 <String Id="DiskCostDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вимоги до диÑкового проÑтору" />
65 <String Id="DiskCostDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" /> 65 <String Id="DiskCostDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" />
66 66
@@ -83,7 +83,7 @@
83 <String Id="FeaturesDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 83 <String Id="FeaturesDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
84 <String Id="FeaturesDlgTree" Overridable="yes" Value="Компоненти продукту" /> 84 <String Id="FeaturesDlgTree" Overridable="yes" Value="Компоненти продукту" />
85 <String Id="FeaturesDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 85 <String Id="FeaturesDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
86 <String Id="FeaturesDlgDescription" Overridable="yes" Value="Виберіть ÑпоÑіб інÑталÑції компонентів." /> 86 <String Id="FeaturesDlgDescription" Overridable="yes" Value="Оберіть ÑпоÑіб інÑталÑції компонентів." />
87 <String Id="FeaturesDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Компоненти продукту" /> 87 <String Id="FeaturesDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Компоненти продукту" />
88 <String Id="FeaturesDlgItemDescription" Overridable="yes" Value="FeaturesDlgItemDescription" /> 88 <String Id="FeaturesDlgItemDescription" Overridable="yes" Value="FeaturesDlgItemDescription" />
89 <String Id="FeaturesDlgItemSize" Overridable="yes" Value="FeaturesDlgItemSize" /> 89 <String Id="FeaturesDlgItemSize" Overridable="yes" Value="FeaturesDlgItemSize" />
@@ -93,14 +93,14 @@
93 <String Id="FilesInUse_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 93 <String Id="FilesInUse_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
94 <String Id="FilesInUseExit" Overridable="yes" Value="Ви&amp;хід" /> 94 <String Id="FilesInUseExit" Overridable="yes" Value="Ви&amp;хід" />
95 <String Id="FilesInUseBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 95 <String Id="FilesInUseBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
96 <String Id="FilesInUseText" Overridable="yes" Value="Ðаведені нижче заÑтоÑунки викориÑтовують файли, Ñкі підлÑгають оновленню під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. Закривши ці заÑтоÑунки, натиÑніть кнопку &quot;&amp;Повторити&quot;, щоб продовжити інÑталÑцію, або кнопку &quot;Закрити&quot;, щоб припинити Ñ—Ñ—." /> 96 <String Id="FilesInUseText" Overridable="yes" Value="Ðаведені нижче додатки викориÑтовують файли, що підлÑгають оновленню під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції. Закривши ці додатки, натиÑніть кнопку &quot;&amp;Повторити&quot;, щоб продовжити інÑталÑцію, або кнопку &quot;Закрити&quot;, щоб припинити Ñ—Ñ—." />
97 <String Id="FilesInUseDescription" Overridable="yes" Value="ДеÑкі файли, що підлÑгають оновленню, зараз викориÑтовуютьÑÑ." /> 97 <String Id="FilesInUseDescription" Overridable="yes" Value="ДеÑкі файли, що підлÑгають оновленню, зараз викориÑтовуютьÑÑ." />
98 <String Id="FilesInUseTitle" Overridable="yes" Value="{\WixUI_Font_Title}Файли, Ñкі викориÑтовуютьÑÑ" /> 98 <String Id="FilesInUseTitle" Overridable="yes" Value="{\WixUI_Font_Title}Файли, Ñкі викориÑтовуютьÑÑ" />
99 99
100 <String Id="InstallDirDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 100 <String Id="InstallDirDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
101 <String Id="InstallDirDlgChange" Overridable="yes" Value="&amp;Змінити..." /> 101 <String Id="InstallDirDlgChange" Overridable="yes" Value="&amp;Змінити..." />
102 <String Id="InstallDirDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Папка призначеннÑ" /> 102 <String Id="InstallDirDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Папка призначеннÑ" />
103 <String Id="InstallDirDlgDescription" Overridable="yes" Value="Ð”Ð»Ñ Ñ–Ð½ÑталÑції в папку за промовчаннÑм натиÑніть кнопку &quot;Далі&quot;; щоб вибрати іншу папку, натиÑніть кнопку &quot;Змінити&quot;." /> 103 <String Id="InstallDirDlgDescription" Overridable="yes" Value="Ð”Ð»Ñ Ñ–Ð½ÑталÑції в папку за замовчуваннÑм натиÑніть кнопку &quot;Далі&quot;; щоб вибрати іншу папку, натиÑніть кнопку &quot;Змінити&quot;." />
104 <String Id="InstallDirDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 104 <String Id="InstallDirDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
105 <String Id="InstallDirDlgFolderLabel" Overridable="yes" Value="Папка Ð´Ð»Ñ Ñ–Ð½ÑталÑції програми [ProductName]:" /> 105 <String Id="InstallDirDlgFolderLabel" Overridable="yes" Value="Папка Ð´Ð»Ñ Ñ–Ð½ÑталÑції програми [ProductName]:" />
106 106
@@ -108,16 +108,16 @@
108 <String Id="InstallScopeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 108 <String Id="InstallScopeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
109 <String Id="InstallScopeDlgDescription" Overridable="yes" Value="Вибір типу й папки Ð´Ð»Ñ Ñ–Ð½ÑталÑції" /> 109 <String Id="InstallScopeDlgDescription" Overridable="yes" Value="Вибір типу й папки Ð´Ð»Ñ Ñ–Ð½ÑталÑції" />
110 <String Id="InstallScopeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Тип інÑталÑції" /> 110 <String Id="InstallScopeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Тип інÑталÑції" />
111 <String Id="InstallScopeDlgPerUser" Overridable="yes" Value="{\WixUI_Font_Emphasized}ІнÑталювати &amp;лише Ð´Ð»Ñ Ñебе ([LogonUser])" /> 111 <String Id="InstallScopeDlgPerUser" Overridable="yes" Value="{\WixUI_Font_Emphasized}ІнÑталювати &amp;Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ кориÑтувача ([LogonUser])" />
112 <String Id="InstallScopeDlgPerUserDescription" Overridable="yes" Value="[ProductName] буде інÑтальовано в папку на рівні кориÑтувача; доÑтуп буде можливий лише з вашого облікового запиÑу кориÑтувача. Права локального адмініÑтратора не потрібні." /> 112 <String Id="InstallScopeDlgPerUserDescription" Overridable="yes" Value="[ProductName] буде інÑтальовано в папку на рівні кориÑтувача; доÑтуп буде можливий лише з вашого облікового запиÑу кориÑтувача. Права локального адмініÑтратора не потрібні." />
113 <String Id="InstallScopeDlgNoPerUserDescription" Overridable="yes" Value="[ProductName] не підтримує інÑталÑції на рівні кориÑтувача." /> 113 <String Id="InstallScopeDlgNoPerUserDescription" Overridable="yes" Value="[ProductName] не підтримує інÑталÑції на рівні кориÑтувача." />
114 <String Id="InstallScopeDlgPerMachine" Overridable="yes" Value="{\WixUI_Font_Emphasized}ІнÑталювати Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів цього &amp;комп’ютера" /> 114 <String Id="InstallScopeDlgPerMachine" Overridable="yes" Value="{\WixUI_Font_Emphasized}ІнÑталювати Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів цього &amp;комп’ютеру" />
115 <String Id="InstallScopeDlgPerMachineDescription" Overridable="yes" Value="[ProductName] буде інÑтальовано в папку за промовчаннÑм на рівні комп’ютера; доÑтуп буде можливий Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів. Папку за промовчаннÑм Ð´Ð»Ñ Ñ–Ð½ÑталÑції можна змінити. Вам необхідні права локального адмініÑтратора." /> 115 <String Id="InstallScopeDlgPerMachineDescription" Overridable="yes" Value="[ProductName] буде інÑтальовано в папку за замовчуваннÑм на рівні комп’ютеру; доÑтуп буде можливий Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів. Папку за замовчуваннÑм Ð´Ð»Ñ Ñ–Ð½ÑталÑції можна змінити. Вам необхідні права локального адмініÑтратора." />
116 <String Id="InstallScopeDlgFolderLabel" Overridable="yes" Value="&amp;Папка Ð´Ð»Ñ Ñ–Ð½ÑталÑції:" /> 116 <String Id="InstallScopeDlgFolderLabel" Overridable="yes" Value="&amp;Папка Ð´Ð»Ñ Ñ–Ð½ÑталÑції:" />
117 <String Id="InstallScopeDlgChange" Overridable="yes" Value="&amp;Змінити..." /> 117 <String Id="InstallScopeDlgChange" Overridable="yes" Value="&amp;Змінити..." />
118 118
119 <String Id="InvalidDirDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 119 <String Id="InvalidDirDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
120 <String Id="InvalidDirDlgText" Overridable="yes" Value="Каталог Ð´Ð»Ñ Ñ–Ð½ÑталÑції має міÑтитиÑÑ Ð½Ð° локальному жорÑткому диÑку." /> 120 <String Id="InvalidDirDlgText" Overridable="yes" Value="Каталог Ð´Ð»Ñ Ñ–Ð½ÑталÑції має міÑтитиÑÑŒ на локальному жорÑткому диÑку." />
121 <String Id="InvalidDirDlgIcon" Overridable="yes" Value="WixUI_Ico_Info" /> 121 <String Id="InvalidDirDlgIcon" Overridable="yes" Value="WixUI_Ico_Info" />
122 <String Id="InvalidDirDlgIconTooltip" Overridable="yes" Value="Піктограма відомоÑтей" /> 122 <String Id="InvalidDirDlgIconTooltip" Overridable="yes" Value="Піктограма відомоÑтей" />
123 123
@@ -135,10 +135,10 @@
135 <String Id="MaintenanceTypeDlgRemoveButton" Overridable="yes" Value="&amp;Видалити" /> 135 <String Id="MaintenanceTypeDlgRemoveButton" Overridable="yes" Value="&amp;Видалити" />
136 <String Id="MaintenanceTypeDlgRemoveButtonTooltip" Overridable="yes" Value="Видалити інÑталÑцію" /> 136 <String Id="MaintenanceTypeDlgRemoveButtonTooltip" Overridable="yes" Value="Видалити інÑталÑцію" />
137 <String Id="MaintenanceTypeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 137 <String Id="MaintenanceTypeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
138 <String Id="MaintenanceTypeDlgDescription" Overridable="yes" Value="Виберіть операцію, Ñку потрібно виконати." /> 138 <String Id="MaintenanceTypeDlgDescription" Overridable="yes" Value="Оберіть операцію, Ñку потрібно виконати." />
139 <String Id="MaintenanceTypeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Змінити, відновити або видалити інÑталÑцію" /> 139 <String Id="MaintenanceTypeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Змінити, відновити або видалити інÑталÑцію" />
140 <String Id="MaintenanceTypeDlgChangeText" Overridable="yes" Value="Дає змогу змінити ÑпоÑіб інÑталÑції компонентів." /> 140 <String Id="MaintenanceTypeDlgChangeText" Overridable="yes" Value="Дає змогу змінити ÑпоÑіб інÑталÑції компонентів." />
141 <String Id="MaintenanceTypeDlgChangeDisabledText" Overridable="yes" Value="Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName] немає компонентів, Ñкі можна вибрати окремо." /> 141 <String Id="MaintenanceTypeDlgChangeDisabledText" Overridable="yes" Value="Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName] немає компонентів, Ñкі можна обрати окремо." />
142 <String Id="MaintenanceTypeDlgRemoveText" Overridable="yes" Value="ВидалÑÑ” [ProductName] з комп’ютера." /> 142 <String Id="MaintenanceTypeDlgRemoveText" Overridable="yes" Value="ВидалÑÑ” [ProductName] з комп’ютера." />
143 <String Id="MaintenanceTypeDlgRemoveDisabledText" Overridable="yes" Value="Ðе можна видалити програму [ProductName]." /> 143 <String Id="MaintenanceTypeDlgRemoveDisabledText" Overridable="yes" Value="Ðе можна видалити програму [ProductName]." />
144 <String Id="MaintenanceTypeDlgRepairText" Overridable="yes" Value="ВиправлÑÑ” помилки оÑтанньої інÑталÑції, відновлюючи втрачені або пошкоджені файли, Ñрлики й запиÑи реєÑтру." /> 144 <String Id="MaintenanceTypeDlgRepairText" Overridable="yes" Value="ВиправлÑÑ” помилки оÑтанньої інÑталÑції, відновлюючи втрачені або пошкоджені файли, Ñрлики й запиÑи реєÑтру." />
@@ -151,26 +151,26 @@
151 151
152 <String Id="MsiRMFilesInUse_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 152 <String Id="MsiRMFilesInUse_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
153 <String Id="MsiRMFilesInUseBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 153 <String Id="MsiRMFilesInUseBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
154 <String Id="MsiRMFilesInUseText" Overridable="yes" Value="Ðаведені нижче заÑтоÑунки викориÑтовують файли, Ñкі підлÑгають оновленню під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. Можна дозволити майÑтру інÑталÑції закрити та Ñпробувати перезапуÑтити Ñ—Ñ… або перезавантажити комп’ютер пізніше." /> 154 <String Id="MsiRMFilesInUseText" Overridable="yes" Value="Ðаведені нижче додатки викориÑтовують файли, що підлÑгають оновленню під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. Можна дозволити майÑтру інÑталÑції закрити та Ñпробувати перезапуÑтити Ñ—Ñ… або перезавантажити комп’ютер пізніше." />
155 <String Id="MsiRMFilesInUseDescription" Overridable="yes" Value="ДеÑкі файли, що підлÑгають оновленню, зараз викориÑтовуютьÑÑ." /> 155 <String Id="MsiRMFilesInUseDescription" Overridable="yes" Value="ДеÑкі файли, що підлÑгають оновленню, зараз викориÑтовуютьÑÑ." />
156 <String Id="MsiRMFilesInUseTitle" Overridable="yes" Value="{\WixUI_Font_Title}Файли, Ñкі викориÑтовуютьÑÑ" /> 156 <String Id="MsiRMFilesInUseTitle" Overridable="yes" Value="{\WixUI_Font_Title}Файли, Ñкі викориÑтовуютьÑÑ" />
157 <String Id="MsiRMFilesInUseUseRM" Overridable="yes" Value="&amp;Закрийте ці заÑтоÑунки та Ñпробуйте Ñ—Ñ… перезапуÑтити." /> 157 <String Id="MsiRMFilesInUseUseRM" Overridable="yes" Value="&amp;Закрийте ці додатки та Ñпробуйте Ñ—Ñ… перезапуÑтити." />
158 <String Id="MsiRMFilesInUseDontUseRM" Overridable="yes" Value="&amp;Ðе закривати заÑтоÑунки. Потрібно буде перезавантажити комп’ютер." /> 158 <String Id="MsiRMFilesInUseDontUseRM" Overridable="yes" Value="&amp;Ðе закривати додатки. Потрібно буде перезавантажити комп’ютер." />
159 159
160 <String Id="OutOfDiskDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 160 <String Id="OutOfDiskDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
161 <String Id="OutOfDiskDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 161 <String Id="OutOfDiskDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
162 <String Id="OutOfDiskDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції вибраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або вибрати інший диÑк призначеннÑ." /> 162 <String Id="OutOfDiskDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції обраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або обрати інший диÑк призначеннÑ." />
163 <String Id="OutOfDiskDlgDescription" Overridable="yes" Value="ОбÑÑг, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції, перевищує обÑÑг вільного диÑкового проÑтору." /> 163 <String Id="OutOfDiskDlgDescription" Overridable="yes" Value="ОбÑÑг, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції, перевищує обÑÑг вільного диÑкового проÑтору." />
164 <String Id="OutOfDiskDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Бракує диÑкового проÑтору" /> 164 <String Id="OutOfDiskDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Бракує диÑкового проÑтору" />
165 <String Id="OutOfDiskDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" /> 165 <String Id="OutOfDiskDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" />
166 166
167 <String Id="OutOfRbDiskDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 167 <String Id="OutOfRbDiskDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
168 <String Id="OutOfRbDiskDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 168 <String Id="OutOfRbDiskDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
169 <String Id="OutOfRbDiskDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції вибраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або вибрати інший диÑк призначеннÑ." /> 169 <String Id="OutOfRbDiskDlgText" Overridable="yes" Value="У виділених томах бракує диÑкового проÑтору Ð´Ð»Ñ Ñ–Ð½ÑталÑції обраних компонентів. Можна видалити з виділених томів кілька файлів, інÑталювати менше компонентів або обрати інший диÑк призначеннÑ." />
170 <String Id="OutOfRbDiskDlgDescription" Overridable="yes" Value="ОбÑÑг, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції, перевищує обÑÑг вільного диÑкового проÑтору." /> 170 <String Id="OutOfRbDiskDlgDescription" Overridable="yes" Value="ОбÑÑг, необхідний Ð´Ð»Ñ Ñ–Ð½ÑталÑції, перевищує обÑÑг вільного диÑкового проÑтору." />
171 <String Id="OutOfRbDiskDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Бракує диÑкового проÑтору" /> 171 <String Id="OutOfRbDiskDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Бракує диÑкового проÑтору" />
172 <String Id="OutOfRbDiskDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" /> 172 <String Id="OutOfRbDiskDlgVolumeList" Overridable="yes" Value="{120}{70}{70}{70}{70}" />
173 <String Id="OutOfRbDiskDlgText2" Overridable="yes" Value="Інший варіант – вимкнути в інÑталÑторі функцію відкочуваннÑ. У такому разі інÑталÑтор не зможе відновити вихідний Ñтан комп’ютера піÑÐ»Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу інÑталÑції. Щоб погодитиÑÑ Ð½Ð° цей ризик Ñ– вимкнути функцію відкочуваннÑ, натиÑніть кнопку &quot;Так&quot;." /> 173 <String Id="OutOfRbDiskDlgText2" Overridable="yes" Value="Інший варіант – вимкнути в інÑталÑторі функцію відкочуваннÑ. У такому разі інÑталÑтор не зможе відновити вихідний Ñтан комп’ютеру піÑÐ»Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу інÑталÑції. Щоб погодитиÑÑ Ð½Ð° цей ризик Ñ– вимкнути функцію відкочуваннÑ, натиÑніть кнопку &quot;Так&quot;." />
174 174
175 <String Id="PrepareDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 175 <String Id="PrepareDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
176 <String Id="PrepareDlgBitmap" Overridable="yes" Value="WixUI_Bmp_Dialog" /> 176 <String Id="PrepareDlgBitmap" Overridable="yes" Value="WixUI_Bmp_Dialog" />
@@ -189,7 +189,7 @@
189 <String Id="ProgressDlgTitleRemoving" Overridable="yes" Value="{\WixUI_Font_Title}Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 189 <String Id="ProgressDlgTitleRemoving" Overridable="yes" Value="{\WixUI_Font_Title}Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
190 <String Id="ProgressDlgTextUpdating" Overridable="yes" Value="Зачекайте, доки майÑтер інÑталÑції оновить програму [ProductName]." /> 190 <String Id="ProgressDlgTextUpdating" Overridable="yes" Value="Зачекайте, доки майÑтер інÑталÑції оновить програму [ProductName]." />
191 <String Id="ProgressDlgTitleUpdating" Overridable="yes" Value="{\WixUI_Font_Title}ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 191 <String Id="ProgressDlgTitleUpdating" Overridable="yes" Value="{\WixUI_Font_Title}ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
192 <String Id="ProgressDlgProgressBar" Overridable="yes" Value="Перебіг виконаннÑ" /> 192 <String Id="ProgressDlgProgressBar" Overridable="yes" Value="Ðиконано" />
193 <String Id="ProgressDlgStatusLabel" Overridable="yes" Value="Стан:" /> 193 <String Id="ProgressDlgStatusLabel" Overridable="yes" Value="Стан:" />
194 194
195 <String Id="ResumeDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 195 <String Id="ResumeDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
@@ -207,9 +207,9 @@
207 <String Id="SetupTypeDlgCompleteButtonTooltip" Overridable="yes" Value="Повна інÑталÑціÑ" /> 207 <String Id="SetupTypeDlgCompleteButtonTooltip" Overridable="yes" Value="Повна інÑталÑціÑ" />
208 <String Id="SetupTypeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 208 <String Id="SetupTypeDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
209 <String Id="SetupTypeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вибір типу інÑталÑції" /> 209 <String Id="SetupTypeDlgTitle" Overridable="yes" Value="{\WixUI_Font_Title}Вибір типу інÑталÑції" />
210 <String Id="SetupTypeDlgDescription" Overridable="yes" Value="Виберіть потрібний тип інÑталÑції" /> 210 <String Id="SetupTypeDlgDescription" Overridable="yes" Value="Оберіть потрібний тип інÑталÑції" />
211 <String Id="SetupTypeDlgTypicalText" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð½Ð°Ð¹Ð¿Ð¾ÑˆÐ¸Ñ€ÐµÐ½Ñ–ÑˆÐ¸Ñ… компонентів програми (рекомендовано Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñті кориÑтувачів)." /> 211 <String Id="SetupTypeDlgTypicalText" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð½Ð°Ð¹Ð¿Ð¾ÑˆÐ¸Ñ€ÐµÐ½Ñ–ÑˆÐ¸Ñ… компонентів програми (рекомендовано Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñті кориÑтувачів)." />
212 <String Id="SetupTypeDlgCustomText" Overridable="yes" Value="МожливіÑть вибрати компоненти програми та міÑце Ñ—Ñ… інÑталÑції (рекомендовано Ð´Ð»Ñ Ð´Ð¾Ñвідчених кориÑтувачів)." /> 212 <String Id="SetupTypeDlgCustomText" Overridable="yes" Value="МожливіÑть обрати компоненти програми та міÑце Ñ—Ñ… інÑталÑції (рекомендовано Ð´Ð»Ñ Ð´Ð¾Ñвідчених кориÑтувачів)." />
213 <String Id="SetupTypeDlgCompleteText" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÑƒÑÑ–Ñ… програмних компонентів (найбільші вимоги до диÑкового проÑтору)." /> 213 <String Id="SetupTypeDlgCompleteText" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÑƒÑÑ–Ñ… програмних компонентів (найбільші вимоги до диÑкового проÑтору)." />
214 214
215 <String Id="UserExit_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 215 <String Id="UserExit_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
@@ -221,19 +221,19 @@
221 <String Id="VerifyReadyDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 221 <String Id="VerifyReadyDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
222 <String Id="VerifyReadyDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" /> 222 <String Id="VerifyReadyDlgBannerBitmap" Overridable="yes" Value="WixUI_Bmp_Banner" />
223 <String Id="VerifyReadyDlgInstall" Overridable="yes" Value="&amp;ІнÑталювати" /> 223 <String Id="VerifyReadyDlgInstall" Overridable="yes" Value="&amp;ІнÑталювати" />
224 <String Id="VerifyReadyDlgInstallText" Overridable="yes" Value="Щоб розпочати інÑталÑцію, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб перевірити або змінити будь-Ñкі наÑтройки інÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 224 <String Id="VerifyReadyDlgInstallText" Overridable="yes" Value="Щоб розпочати інÑталÑцію, натиÑніть кнопку &quot;ІнÑталювати&quot;. Щоб перевірити або змінити будь-Ñкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." />
225 <String Id="VerifyReadyDlgInstallTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до інÑталÑції програми [ProductName]" /> 225 <String Id="VerifyReadyDlgInstallTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до інÑталÑції програми [ProductName]" />
226 <String Id="VerifyReadyDlgChange" Overridable="yes" Value="&amp;Змінити" /> 226 <String Id="VerifyReadyDlgChange" Overridable="yes" Value="&amp;Змінити" />
227 <String Id="VerifyReadyDlgChangeText" Overridable="yes" Value="Щоб розпочати інÑталÑцію, натиÑніть кнопку &quot;Змінити&quot;. Щоб перевірити або змінити будь-Ñкі наÑтройки інÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 227 <String Id="VerifyReadyDlgChangeText" Overridable="yes" Value="Щоб розпочати інÑталÑцію, натиÑніть кнопку &quot;Змінити&quot;. Щоб перевірити або змінити будь-Ñкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." />
228 <String Id="VerifyReadyDlgChangeTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 228 <String Id="VerifyReadyDlgChangeTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
229 <String Id="VerifyReadyDlgRepair" Overridable="yes" Value="Відно&amp;вити" /> 229 <String Id="VerifyReadyDlgRepair" Overridable="yes" Value="Відно&amp;вити" />
230 <String Id="VerifyReadyDlgRepairText" Overridable="yes" Value="Щоб відновити інÑталÑцію програми [ProductName], натиÑніть кнопку &quot;Відновити&quot;. Щоб перевірити або змінити будь-Ñкі наÑтройки інÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 230 <String Id="VerifyReadyDlgRepairText" Overridable="yes" Value="Щоб відновити інÑталÑцію програми [ProductName], натиÑніть кнопку &quot;Відновити&quot;. Щоб перевірити або змінити будь-Ñкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." />
231 <String Id="VerifyReadyDlgRepairTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 231 <String Id="VerifyReadyDlgRepairTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
232 <String Id="VerifyReadyDlgRemove" Overridable="yes" Value="&amp;Видалити" /> 232 <String Id="VerifyReadyDlgRemove" Overridable="yes" Value="&amp;Видалити" />
233 <String Id="VerifyReadyDlgRemoveText" Overridable="yes" Value="Щоб видалити програму [ProductName] з цього комп’ютера, натиÑніть кнопку &quot;Видалити&quot;. Щоб перевірити або змінити будь-Ñкі наÑтройки інÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 233 <String Id="VerifyReadyDlgRemoveText" Overridable="yes" Value="Щоб видалити програму [ProductName] з цього комп’ютера, натиÑніть кнопку &quot;Видалити&quot;. Щоб перевірити або змінити будь-Ñкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." />
234 <String Id="VerifyReadyDlgRemoveTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 234 <String Id="VerifyReadyDlgRemoveTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
235 <String Id="VerifyReadyDlgUpdate" Overridable="yes" Value="&amp;Оновити" /> 235 <String Id="VerifyReadyDlgUpdate" Overridable="yes" Value="&amp;Оновити" />
236 <String Id="VerifyReadyDlgUpdateText" Overridable="yes" Value="Щоб оновити програму [ProductName] зі Ñвого комп’ютера, натиÑніть кнопку &quot;Оновити&quot;. Щоб перевірити або змінити будь-Ñкі наÑтройки інÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 236 <String Id="VerifyReadyDlgUpdateText" Overridable="yes" Value="Щоб оновити програму [ProductName] зі Ñвого комп’ютера, натиÑніть кнопку &quot;Оновити&quot;. Щоб перевірити або змінити будь-Ñкі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑталÑції, натиÑніть кнопку &quot;Ðазад&quot;. Щоб закрити майÑтер, натиÑніть кнопку &quot;СкаÑувати&quot;." />
237 <String Id="VerifyReadyDlgUpdateTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 237 <String Id="VerifyReadyDlgUpdateTitle" Overridable="yes" Value="{\WixUI_Font_Title}УÑе готово до Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
238 238
239 <String Id="WaitForCostingDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" /> 239 <String Id="WaitForCostingDlg_Title" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ [ProductName]" />
@@ -258,7 +258,7 @@
258 <String Id="ProgressTextInstallValidate" Overridable="yes" Value="Перевірка інÑталÑції" /> 258 <String Id="ProgressTextInstallValidate" Overridable="yes" Value="Перевірка інÑталÑції" />
259 <String Id="ProgressTextInstallFiles" Overridable="yes" Value="ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… файлів" /> 259 <String Id="ProgressTextInstallFiles" Overridable="yes" Value="ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¸Ñ… файлів" />
260 <String Id="ProgressTextInstallFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" /> 260 <String Id="ProgressTextInstallFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" />
261 <String Id="ProgressTextInstallAdminPackage" Overridable="yes" Value="ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² мережної інÑталÑції" /> 261 <String Id="ProgressTextInstallAdminPackage" Overridable="yes" Value="ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² мережевої інÑталÑції" />
262 <String Id="ProgressTextInstallAdminPackageTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" /> 262 <String Id="ProgressTextInstallAdminPackageTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" />
263 <String Id="ProgressTextFileCost" Overridable="yes" Value="ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ диÑкового проÑтору" /> 263 <String Id="ProgressTextFileCost" Overridable="yes" Value="ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ диÑкового проÑтору" />
264 <String Id="ProgressTextCostInitialize" Overridable="yes" Value="ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ диÑкового проÑтору" /> 264 <String Id="ProgressTextCostInitialize" Overridable="yes" Value="ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ диÑкового проÑтору" />
@@ -266,7 +266,7 @@
266 <String Id="ProgressTextCreateShortcuts" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñрликів" /> 266 <String Id="ProgressTextCreateShortcuts" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñрликів" />
267 <String Id="ProgressTextCreateShortcutsTemplate" Overridable="yes" Value="Ярлик: [1]" /> 267 <String Id="ProgressTextCreateShortcutsTemplate" Overridable="yes" Value="Ярлик: [1]" />
268 <String Id="ProgressTextPublishComponents" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… компонентів" /> 268 <String Id="ProgressTextPublishComponents" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… компонентів" />
269 <String Id="ProgressTextPublishComponentsTemplate" Overridable="yes" Value="Ідентифікатор компонента: [1], кваліфікатор: [2]" /> 269 <String Id="ProgressTextPublishComponentsTemplate" Overridable="yes" Value="Ідентифікатор компоненту: [1], кваліфікатор: [2]" />
270 <String Id="ProgressTextPublishFeatures" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ продукту" /> 270 <String Id="ProgressTextPublishFeatures" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ продукту" />
271 <String Id="ProgressTextPublishFeaturesTemplate" Overridable="yes" Value="ФункціÑ: [1]" /> 271 <String Id="ProgressTextPublishFeaturesTemplate" Overridable="yes" Value="ФункціÑ: [1]" />
272 <String Id="ProgressTextPublishProduct" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про продукт" /> 272 <String Id="ProgressTextPublishProduct" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про продукт" />
@@ -280,7 +280,7 @@
280 <String Id="ProgressTextRegisterProgIdInfoTemplate" Overridable="yes" Value="Ідентифікатор програми: [1]" /> 280 <String Id="ProgressTextRegisterProgIdInfoTemplate" Overridable="yes" Value="Ідентифікатор програми: [1]" />
281 <String Id="ProgressTextAllocateRegistrySpace" Overridable="yes" Value="Ð’Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð² реєÑтрі" /> 281 <String Id="ProgressTextAllocateRegistrySpace" Overridable="yes" Value="Ð’Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð² реєÑтрі" />
282 <String Id="ProgressTextAllocateRegistrySpaceTemplate" Overridable="yes" Value="Вільне міÑце: [1]" /> 282 <String Id="ProgressTextAllocateRegistrySpaceTemplate" Overridable="yes" Value="Вільне міÑце: [1]" />
283 <String Id="ProgressTextAppSearch" Overridable="yes" Value="Пошук інÑтальованих заÑтоÑунків" /> 283 <String Id="ProgressTextAppSearch" Overridable="yes" Value="Пошук інÑтальованих додатків" />
284 <String Id="ProgressTextAppSearchTemplate" Overridable="yes" Value="ВлаÑтивіÑть: [1]. ПідпиÑ: [2]" /> 284 <String Id="ProgressTextAppSearchTemplate" Overridable="yes" Value="ВлаÑтивіÑть: [1]. ПідпиÑ: [2]" />
285 <String Id="ProgressTextBindImage" Overridable="yes" Value="Зв’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… файлів" /> 285 <String Id="ProgressTextBindImage" Overridable="yes" Value="Зв’ÑÐ·ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… файлів" />
286 <String Id="ProgressTextBindImageTemplate" Overridable="yes" Value="Файл: [1]" /> 286 <String Id="ProgressTextBindImageTemplate" Overridable="yes" Value="Файл: [1]" />
@@ -291,21 +291,21 @@
291 <String Id="ProgressTextDeleteServicesTemplate" Overridable="yes" Value="Служба: [1]" /> 291 <String Id="ProgressTextDeleteServicesTemplate" Overridable="yes" Value="Служба: [1]" />
292 <String Id="ProgressTextDuplicateFiles" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ð¹ файлів" /> 292 <String Id="ProgressTextDuplicateFiles" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ð¹ файлів" />
293 <String Id="ProgressTextDuplicateFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" /> 293 <String Id="ProgressTextDuplicateFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" />
294 <String Id="ProgressTextFindRelatedProducts" Overridable="yes" Value="Пошук пов’Ñзаних заÑтоÑунків" /> 294 <String Id="ProgressTextFindRelatedProducts" Overridable="yes" Value="Пошук пов’Ñзаних додатків" />
295 <String Id="ProgressTextFindRelatedProductsTemplate" Overridable="yes" Value="Знайдено заÑтоÑунок: [1]" /> 295 <String Id="ProgressTextFindRelatedProductsTemplate" Overridable="yes" Value="Знайдено додаток: [1]" />
296 <String Id="ProgressTextInstallODBC" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð² ODBC" /> 296 <String Id="ProgressTextInstallODBC" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð² ODBC" />
297 <String Id="ProgressTextInstallServices" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð½Ð¾Ð²Ð¸Ñ… Ñлужб" /> 297 <String Id="ProgressTextInstallServices" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ Ð½Ð¾Ð²Ð¸Ñ… Ñлужб" />
298 <String Id="ProgressTextInstallServicesTemplate" Overridable="yes" Value="Служба: [2]" /> 298 <String Id="ProgressTextInstallServicesTemplate" Overridable="yes" Value="Служба: [2]" />
299 <String Id="ProgressTextLaunchConditions" Overridable="yes" Value="Перевірка умов запуÑку" /> 299 <String Id="ProgressTextLaunchConditions" Overridable="yes" Value="Перевірка умов запуÑку" />
300 <String Id="ProgressTextMigrateFeatureStates" Overridable="yes" Value="ÐœÑ–Ð³Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² компонентів із пов’Ñзаних заÑтоÑунків" /> 300 <String Id="ProgressTextMigrateFeatureStates" Overridable="yes" Value="ÐœÑ–Ð³Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² компонентів із пов’Ñзаних додатків" />
301 <String Id="ProgressTextMigrateFeatureStatesTemplate" Overridable="yes" Value="ЗаÑтоÑунок: [1]" /> 301 <String Id="ProgressTextMigrateFeatureStatesTemplate" Overridable="yes" Value="ЗаÑтоÑунок: [1]" />
302 <String Id="ProgressTextMoveFiles" Overridable="yes" Value="ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" /> 302 <String Id="ProgressTextMoveFiles" Overridable="yes" Value="ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" />
303 <String Id="ProgressTextMoveFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" /> 303 <String Id="ProgressTextMoveFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9], розмір: [6]" />
304 <String Id="ProgressTextPatchFiles" Overridable="yes" Value="Ð’Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" /> 304 <String Id="ProgressTextPatchFiles" Overridable="yes" Value="Ð’Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" />
305 <String Id="ProgressTextPatchFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [2], розмір: [3]" /> 305 <String Id="ProgressTextPatchFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [2], розмір: [3]" />
306 <String Id="ProgressTextProcessComponents" Overridable="yes" Value="ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтрації компонентів" /> 306 <String Id="ProgressTextProcessComponents" Overridable="yes" Value="ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÑ”Ñтрації компонентів" />
307 <String Id="ProgressTextRegisterComPlus" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð·Ð°ÑтоÑунків Ñ– компонентів COM+" /> 307 <String Id="ProgressTextRegisterComPlus" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² Ñ– компонентів COM+" />
308 <String Id="ProgressTextRegisterComPlusTemplate" Overridable="yes" Value="Ідентифікатор заÑтоÑунку: [1]{{, тип заÑтоÑунку: [2], кориÑтувачі: [3], RSN: [4]}}" /> 308 <String Id="ProgressTextRegisterComPlusTemplate" Overridable="yes" Value="Ідентифікатор додатку: [1]{{, тип заÑтоÑунку: [2], кориÑтувачі: [3], RSN: [4]}}" />
309 <String Id="ProgressTextRegisterFonts" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²" /> 309 <String Id="ProgressTextRegisterFonts" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²" />
310 <String Id="ProgressTextRegisterFontsTemplate" Overridable="yes" Value="Шрифт: [1]" /> 310 <String Id="ProgressTextRegisterFontsTemplate" Overridable="yes" Value="Шрифт: [1]" />
311 <String Id="ProgressTextRegisterProduct" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ" /> 311 <String Id="ProgressTextRegisterProduct" Overridable="yes" Value="РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ" />
@@ -318,8 +318,8 @@
318 <String Id="ProgressTextRemoveDuplicateFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9]" /> 318 <String Id="ProgressTextRemoveDuplicateFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9]" />
319 <String Id="ProgressTextRemoveEnvironmentStrings" Overridable="yes" Value="ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ñдків оточеннÑ" /> 319 <String Id="ProgressTextRemoveEnvironmentStrings" Overridable="yes" Value="ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ñдків оточеннÑ" />
320 <String Id="ProgressTextRemoveEnvironmentStringsTemplate" Overridable="yes" Value="Ім’Ñ: [1], значеннÑ: [2], Ð´Ñ–Ñ [3]" /> 320 <String Id="ProgressTextRemoveEnvironmentStringsTemplate" Overridable="yes" Value="Ім’Ñ: [1], значеннÑ: [2], Ð´Ñ–Ñ [3]" />
321 <String Id="ProgressTextRemoveExistingProducts" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑунків" /> 321 <String Id="ProgressTextRemoveExistingProducts" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð²" />
322 <String Id="ProgressTextRemoveExistingProductsTemplate" Overridable="yes" Value="ЗаÑтоÑунок: [1], командний Ñ€Ñдок: [2]" /> 322 <String Id="ProgressTextRemoveExistingProductsTemplate" Overridable="yes" Value="Додаток: [1], командний Ñ€Ñдок: [2]" />
323 <String Id="ProgressTextRemoveFiles" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" /> 323 <String Id="ProgressTextRemoveFiles" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" />
324 <String Id="ProgressTextRemoveFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9]" /> 324 <String Id="ProgressTextRemoveFilesTemplate" Overridable="yes" Value="Файл: [1], каталог: [9]" />
325 <String Id="ProgressTextRemoveFolders" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿Ð¾Ðº" /> 325 <String Id="ProgressTextRemoveFolders" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿Ð¾Ðº" />
@@ -339,16 +339,16 @@
339 <String Id="ProgressTextSetODBCFolders" Overridable="yes" Value="Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð² ODBC" /> 339 <String Id="ProgressTextSetODBCFolders" Overridable="yes" Value="Ð†Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð² ODBC" />
340 <String Id="ProgressTextStartServices" Overridable="yes" Value="ЗапуÑк Ñлужб" /> 340 <String Id="ProgressTextStartServices" Overridable="yes" Value="ЗапуÑк Ñлужб" />
341 <String Id="ProgressTextStartServicesTemplate" Overridable="yes" Value="Служба: [1]" /> 341 <String Id="ProgressTextStartServicesTemplate" Overridable="yes" Value="Служба: [1]" />
342 <String Id="ProgressTextStopServices" Overridable="yes" Value="Ð—ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð½Ñ Ñлужб" /> 342 <String Id="ProgressTextStopServices" Overridable="yes" Value="Зупинка Ñлужб" />
343 <String Id="ProgressTextStopServicesTemplate" Overridable="yes" Value="Служба: [1]" /> 343 <String Id="ProgressTextStopServicesTemplate" Overridable="yes" Value="Служба: [1]" />
344 <String Id="ProgressTextUnpublishComponents" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— придатних компонентів" /> 344 <String Id="ProgressTextUnpublishComponents" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— придатних компонентів" />
345 <String Id="ProgressTextUnpublishComponentsTemplate" Overridable="yes" Value="Ідентифікатор компонента: [1], кваліфікатор: [2]" /> 345 <String Id="ProgressTextUnpublishComponentsTemplate" Overridable="yes" Value="Ідентифікатор компоненту: [1], кваліфікатор: [2]" />
346 <String Id="ProgressTextUnpublishFeatures" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— функцій продукту" /> 346 <String Id="ProgressTextUnpublishFeatures" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— функцій продукту" />
347 <String Id="ProgressTextUnpublishFeaturesTemplate" Overridable="yes" Value="ФункціÑ: [1]" /> 347 <String Id="ProgressTextUnpublishFeaturesTemplate" Overridable="yes" Value="ФункціÑ: [1]" />
348 <String Id="ProgressTextUnregisterClassInfo" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації Ñерверів клаÑів" /> 348 <String Id="ProgressTextUnregisterClassInfo" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації Ñерверів клаÑів" />
349 <String Id="ProgressTextUnregisterClassInfoTemplate" Overridable="yes" Value="Ідентифікатор клаÑу: [1]" /> 349 <String Id="ProgressTextUnregisterClassInfoTemplate" Overridable="yes" Value="Ідентифікатор клаÑу: [1]" />
350 <String Id="ProgressTextUnregisterComPlus" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації заÑтоÑунків Ñ– компонентів COM+" /> 350 <String Id="ProgressTextUnregisterComPlus" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації додаткыв Ñ– компонентів COM+" />
351 <String Id="ProgressTextUnregisterComPlusTemplate" Overridable="yes" Value="Ідентифікатор заÑтоÑунку: [1]{{, тип заÑтоÑунку: [2]}}" /> 351 <String Id="ProgressTextUnregisterComPlusTemplate" Overridable="yes" Value="Ідентифікатор додатку: [1]{{, тип додатку: [2]}}" />
352 <String Id="ProgressTextUnregisterExtensionInfo" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації Ñерверів розширень" /> 352 <String Id="ProgressTextUnregisterExtensionInfo" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації Ñерверів розширень" />
353 <String Id="ProgressTextUnregisterExtensionInfoTemplate" Overridable="yes" Value="РозширеннÑ: [1]" /> 353 <String Id="ProgressTextUnregisterExtensionInfoTemplate" Overridable="yes" Value="РозширеннÑ: [1]" />
354 <String Id="ProgressTextUnregisterFonts" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації шрифтів" /> 354 <String Id="ProgressTextUnregisterFonts" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації шрифтів" />
@@ -365,15 +365,15 @@
365 <String Id="ProgressTextWriteIniValuesTemplate" Overridable="yes" Value="Файл: [1], розділ: [2], ключ: [3], значеннÑ: [4]" /> 365 <String Id="ProgressTextWriteIniValuesTemplate" Overridable="yes" Value="Файл: [1], розділ: [2], ключ: [3], значеннÑ: [4]" />
366 <String Id="ProgressTextWriteRegistryValues" Overridable="yes" Value="Ð—Ð°Ð¿Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ до ÑиÑтемного реєÑтру" /> 366 <String Id="ProgressTextWriteRegistryValues" Overridable="yes" Value="Ð—Ð°Ð¿Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ до ÑиÑтемного реєÑтру" />
367 <String Id="ProgressTextWriteRegistryValuesTemplate" Overridable="yes" Value="Розділ: [1], ім’Ñ: [2], значеннÑ: [3]" /> 367 <String Id="ProgressTextWriteRegistryValuesTemplate" Overridable="yes" Value="Розділ: [1], ім’Ñ: [2], значеннÑ: [3]" />
368 <String Id="ProgressTextAdvertise" Overridable="yes" Value="ÐŸÐ¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про заÑтоÑунок" /> 368 <String Id="ProgressTextAdvertise" Overridable="yes" Value="ÐŸÐ¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про додаток" />
369 <String Id="ProgressTextGenerateScript" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ Ñценарію Ð´Ð»Ñ Ð´Ñ–Ñ—:" /> 369 <String Id="ProgressTextGenerateScript" Overridable="yes" Value="Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ Ñценарію Ð´Ð»Ñ Ð´Ñ–Ñ—:" />
370 <String Id="ProgressTextGenerateScriptTemplate" Overridable="yes" Value="[1]" /> 370 <String Id="ProgressTextGenerateScriptTemplate" Overridable="yes" Value="[1]" />
371 <String Id="ProgressTextInstallSFPCatalogFile" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÑиÑтемного каталогу" /> 371 <String Id="ProgressTextInstallSFPCatalogFile" Overridable="yes" Value="ІнÑталÑÑ†Ñ–Ñ ÑиÑтемного каталогу" />
372 <String Id="ProgressTextInstallSFPCatalogFileTemplate" Overridable="yes" Value="Файл: [1], залежноÑті: [2]" /> 372 <String Id="ProgressTextInstallSFPCatalogFileTemplate" Overridable="yes" Value="Файл: [1], залежноÑті: [2]" />
373 <String Id="ProgressTextMsiPublishAssemblies" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про ÑкладаннÑ" /> 373 <String Id="ProgressTextMsiPublishAssemblies" Overridable="yes" Value="ÐŸÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про ÑкладаннÑ" />
374 <String Id="ProgressTextMsiPublishAssembliesTemplate" Overridable="yes" Value="КонтекÑÑ‚ заÑтоÑунку:[1], Ñ–Ð¼â€™Ñ ÑкладаннÑ:[2]" /> 374 <String Id="ProgressTextMsiPublishAssembliesTemplate" Overridable="yes" Value="КонтекÑÑ‚ додатку:[1], Ñ–Ð¼â€™Ñ ÑкладаннÑ:[2]" />
375 <String Id="ProgressTextMsiUnpublishAssemblies" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— відомоÑтей про ÑкладаннÑ" /> 375 <String Id="ProgressTextMsiUnpublishAssemblies" Overridable="yes" Value="СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ†Ñ–Ñ— відомоÑтей про ÑкладаннÑ" />
376 <String Id="ProgressTextMsiUnpublishAssembliesTemplate" Overridable="yes" Value="КонтекÑÑ‚ заÑтоÑунку:[1], Ñ–Ð¼â€™Ñ ÑкладаннÑ:[2]" /> 376 <String Id="ProgressTextMsiUnpublishAssembliesTemplate" Overridable="yes" Value="КонтекÑÑ‚ додатку:[1], Ñ–Ð¼â€™Ñ ÑкладаннÑ:[2]" />
377 <String Id="ProgressTextRollback" Overridable="yes" Value="Ð’Ñ–Ð´ÐºÐ¾Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ—:" /> 377 <String Id="ProgressTextRollback" Overridable="yes" Value="Ð’Ñ–Ð´ÐºÐ¾Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ñ—:" />
378 <String Id="ProgressTextRollbackTemplate" Overridable="yes" Value="[1]" /> 378 <String Id="ProgressTextRollbackTemplate" Overridable="yes" Value="[1]" />
379 <String Id="ProgressTextRollbackCleanup" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¸Ñ… файлів" /> 379 <String Id="ProgressTextRollbackCleanup" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¸Ñ… файлів" />
@@ -386,7 +386,7 @@
386 <String Id="Error1" Overridable="yes" Value="{{Помилка [1]. }}" /> 386 <String Id="Error1" Overridable="yes" Value="{{Помилка [1]. }}" />
387 <String Id="Error2" Overridable="yes" Value="ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ [1]." /> 387 <String Id="Error2" Overridable="yes" Value="ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ [1]." />
388 <String Id="Error4" Overridable="yes" Value="ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ [1]." /> 388 <String Id="Error4" Overridable="yes" Value="ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ [1]." />
389 <String Id="Error5" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції цього пакета ÑталаÑÑ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° помилка інÑталÑтора. Можливо, це вказує на проблему з пакетом. Код помилки – [1]. {{Ðргументи: [2], [3], [4]}}" /> 389 <String Id="Error5" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції цього пакета ÑталаÑÑŒ неочікувана помилка інÑталÑтора. Можливо, це вказує на проблему з пакетом. Код помилки – [1]. {{Ðргументи: [2], [3], [4]}}" />
390 <String Id="Error7" Overridable="yes" Value="{{Ðемає міÑÑ†Ñ Ð½Ð° диÑку: }}" /> 390 <String Id="Error7" Overridable="yes" Value="{{Ðемає міÑÑ†Ñ Ð½Ð° диÑку: }}" />
391 <String Id="Error8" Overridable="yes" Value="Ð”Ñ–Ñ [Time]: [1]. [2]" /> 391 <String Id="Error8" Overridable="yes" Value="Ð”Ñ–Ñ [Time]: [1]. [2]" />
392 <String Id="Error9" Overridable="yes" Value="[ProductName]" /> 392 <String Id="Error9" Overridable="yes" Value="[ProductName]" />
@@ -397,152 +397,152 @@
397 <String Id="Error14" Overridable="yes" Value="Дію почато [Time]: [1]." /> 397 <String Id="Error14" Overridable="yes" Value="Дію почато [Time]: [1]." />
398 <String Id="Error15" Overridable="yes" Value="Дію завершено [Time]: [1]. Повернено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2]." /> 398 <String Id="Error15" Overridable="yes" Value="Дію завершено [Time]: [1]. Повернено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2]." />
399 <String Id="Error16" Overridable="yes" Value="ЗалишилоÑÑ Ñ‡Ð°Ñу: {[1] хв. }{[2] Ñек.}" /> 399 <String Id="Error16" Overridable="yes" Value="ЗалишилоÑÑ Ñ‡Ð°Ñу: {[1] хв. }{[2] Ñек.}" />
400 <String Id="Error17" Overridable="yes" Value="Бракує пам’Ñті. Закрийте інші заÑтоÑунки та повторіть Ñпробу." /> 400 <String Id="Error17" Overridable="yes" Value="Бракує пам’Ñті. Закрийте інші додатки та повторіть Ñпробу." />
401 <String Id="Error18" Overridable="yes" Value="ІнÑталÑтор не відповідає." /> 401 <String Id="Error18" Overridable="yes" Value="ІнÑталÑтор не відповідає." />
402 <String Id="Error19" Overridable="yes" Value="ІнÑталÑтор передчаÑно припинив роботу." /> 402 <String Id="Error19" Overridable="yes" Value="ІнÑталÑтор передчаÑно припинив роботу." />
403 <String Id="Error20" Overridable="yes" Value="Зачекайте: ÑиÑтема Windows наÑтроює програму [ProductName]" /> 403 <String Id="Error20" Overridable="yes" Value="Зачекайте: ÑиÑтема Windows налаштовує програму [ProductName]" />
404 <String Id="Error21" Overridable="yes" Value="Триває Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¸Ñ… даних..." /> 404 <String Id="Error21" Overridable="yes" Value="Триває збÑÑ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¸Ñ… даних..." />
405 <String Id="Error22" Overridable="yes" Value="Триває Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… верÑій цього заÑтоÑунку..." /> 405 <String Id="Error22" Overridable="yes" Value="Триває Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… верÑій цього додатку..." />
406 <String Id="Error23" Overridable="yes" Value="Підготовка до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… верÑій цього заÑтоÑунку..." /> 406 <String Id="Error23" Overridable="yes" Value="Підготовка до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… верÑій цього додатку..." />
407 <String Id="Error32" Overridable="yes" Value="Роботу програми інÑталÑції {[ProductName]} уÑпішно завершено." /> 407 <String Id="Error32" Overridable="yes" Value="Роботу програми інÑталÑції {[ProductName]} уÑпішно завершено." />
408 <String Id="Error33" Overridable="yes" Value="Помилка програми інÑталÑції {[ProductName]}." /> 408 <String Id="Error33" Overridable="yes" Value="Помилка програми інÑталÑції {[ProductName]}." />
409 <String Id="Error1101" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 409 <String Id="Error1101" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." />
410 <String Id="Error1301" Overridable="yes" Value="Ðе вдалоÑÑ Ñтворити файл &quot;[2]&quot;. Каталог із таким іменем уже Ñ–Ñнує. СкаÑуйте інÑталÑцію та виберіть інше розташуваннÑ." /> 410 <String Id="Error1301" Overridable="yes" Value="Ðе вдалоÑÑŒ Ñтворити файл &quot;[2]&quot;. Каталог з таким іменем уже Ñ–Ñнує. СкаÑуйте інÑталÑцію та оберіть інше розташуваннÑ." />
411 <String Id="Error1302" Overridable="yes" Value="Ð’Ñтавте диÑк: [2]" /> 411 <String Id="Error1302" Overridable="yes" Value="Ð’Ñтавте диÑк: [2]" />
412 <String Id="Error1303" Overridable="yes" Value="ІнÑталÑтор не має належних прав доÑтупу до цього каталогу: [2]. ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції неможливе. Ввійдіть до ÑиÑтеми Ñк адмініÑтратор або звернітьÑÑ Ð´Ð¾ ÑиÑтемного адмініÑтратора." /> 412 <String Id="Error1303" Overridable="yes" Value="ІнÑталÑтор не має належних прав доÑтупу до цього каталогу: [2]. ÐŸÑ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції неможливе. Увійдіть до ÑиÑтеми Ñк адмініÑтратор або звернітьÑÑ Ð´Ð¾ ÑиÑтемного адмініÑтратора." />
413 <String Id="Error1304" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу: [2]. ПереконайтеÑÑ, що маєте доÑтуп до цього каталогу." /> 413 <String Id="Error1304" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу: [2]. ПереконайтеÑÑŒ, що маєте доÑтуп до цього каталогу." />
414 <String Id="Error1305" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 414 <String Id="Error1305" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що цей файл Ñ–Ñнує та доÑтупний." />
415 <String Id="Error1306" Overridable="yes" Value="Файл &quot;[2]&quot; відкрито в режимі монопольного доÑтупу в іншому заÑтоÑунку. Закрийте вÑÑ– інші заÑтоÑунки й натиÑніть кнопку &quot;Повторити&quot;." /> 415 <String Id="Error1306" Overridable="yes" Value="Файл &quot;[2]&quot; відкрито в режимі монопольного доÑтупу в іншому додатку. Закрийте вÑÑ– інші додатки й натиÑніть кнопку &quot;Повторити&quot;." />
416 <String Id="Error1307" Overridable="yes" Value="ÐедоÑтатньо міÑÑ†Ñ Ð½Ð° диÑку Ð´Ð»Ñ Ñ–Ð½ÑталÑції файлу: [2]. Звільніть міÑце й натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб вийти." /> 416 <String Id="Error1307" Overridable="yes" Value="ÐедоÑтатньо міÑÑ†Ñ Ð½Ð° диÑку Ð´Ð»Ñ Ñ–Ð½ÑталÑції файлу: [2]. Звільніть міÑце й натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб вийти." />
417 <String Id="Error1308" Overridable="yes" Value="Вихідний файл не знайдено: [2]. ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 417 <String Id="Error1308" Overridable="yes" Value="Вихідний файл не знайдено: [2]. ПереконайтеÑÑŒ, що цей файл Ñ–Ñнує та доÑтупний." />
418 <String Id="Error1309" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу: [3]. {{ СиÑтемна помилка [2].}} ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 418 <String Id="Error1309" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· файлу: [3]. {{ СиÑтемна помилка [2].}} ПереконайтеÑÑŒ, що цей файл Ñ–Ñнує та доÑтупний." />
419 <String Id="Error1310" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу: [3]. {{ СиÑтемна помилка [2].}} ПереконайтеÑÑ, що маєте доÑтуп до цього каталогу." /> 419 <String Id="Error1310" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу: [3]. {{ СиÑтемна помилка [2].}} ПереконайтеÑÑŒ, що маєте доÑтуп до цього каталогу." />
420 <String Id="Error1311" Overridable="yes" Value="Вихідний файл не знайдено{{(CAB-файл)}}: [2]. ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 420 <String Id="Error1311" Overridable="yes" Value="Вихідний файл не знайдено{{(CAB-файл)}}: [2]. ПереконайтеÑÑŒ, що цей файл Ñ–Ñнує та доÑтупний." />
421 <String Id="Error1312" Overridable="yes" Value="Ðе вдалоÑÑ Ñтворити каталог &quot;[2]&quot;. Файл із таким іменем уже Ñ–Ñнує. Перейменуйте або видаліть цей файл Ñ– натиÑніть кнопку &quot;Повторити&quot;. Щоб вийти, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 421 <String Id="Error1312" Overridable="yes" Value="Ðе вдалоÑÑŒ Ñтворити каталог &quot;[2]&quot;. Файл із таким іменем уже Ñ–Ñнує. Перейменуйте або видаліть цей файл Ñ– натиÑніть кнопку &quot;Повторити&quot;. Щоб вийти, натиÑніть кнопку &quot;СкаÑувати&quot;." />
422 <String Id="Error1313" Overridable="yes" Value="Том [2] зараз недоÑтупний. Виберіть інший." /> 422 <String Id="Error1313" Overridable="yes" Value="Том [2] зараз недоÑтупний. Оберіть інший." />
423 <String Id="Error1314" Overridable="yes" Value="Указаний шлÑÑ… &quot;[2]&quot; недоÑтупний." /> 423 <String Id="Error1314" Overridable="yes" Value="Ðказаний шлÑÑ… &quot;[2]&quot; недоÑтупний." />
424 <String Id="Error1315" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати до вказаної папки: [2]." /> 424 <String Id="Error1315" Overridable="yes" Value="Ðе вдалоÑÑŒ запиÑати до вказаної папки: [2]." />
425 <String Id="Error1316" Overridable="yes" Value="СталаÑÑ Ð¼ÐµÑ€ÐµÐ¶Ð½Ð° помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ: [2]" /> 425 <String Id="Error1316" Overridable="yes" Value="СталаÑÑŒ мережева помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ: [2]" />
426 <String Id="Error1317" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: [2]" /> 426 <String Id="Error1317" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: [2]" />
427 <String Id="Error1318" Overridable="yes" Value="СталаÑÑ Ð¼ÐµÑ€ÐµÐ¶Ð½Ð° помилка під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: [2]" /> 427 <String Id="Error1318" Overridable="yes" Value="СталаÑÑŒ мережева помилка під Ñ‡Ð°Ñ Ñпроби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: [2]" />
428 <String Id="Error1319" Overridable="yes" Value="СталаÑÑ Ð¼ÐµÑ€ÐµÐ¶Ð½Ð° помилка під Ñ‡Ð°Ñ Ñпроби відкрити CAB-файл із вихідними файлами: [2]" /> 428 <String Id="Error1319" Overridable="yes" Value="СталаÑÑŒ мережева помилка під Ñ‡Ð°Ñ Ñпроби відкрити CAB-файл із вихідними файлами: [2]" />
429 <String Id="Error1320" Overridable="yes" Value="Указано задовгий шлÑÑ…: [2]" /> 429 <String Id="Error1320" Overridable="yes" Value="Ðказано задовгий шлÑÑ…: [2]" />
430 <String Id="Error1321" Overridable="yes" Value="ІнÑталÑтор не має належних прав Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу: [2]." /> 430 <String Id="Error1321" Overridable="yes" Value="ІнÑталÑтор не має належних прав Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу: [2]." />
431 <String Id="Error1322" Overridable="yes" Value="ЧаÑтина шлÑху до папки &quot;[2]&quot; неприпуÑтима: пуÑта або перевищує дозволену в ÑиÑтемі довжину." /> 431 <String Id="Error1322" Overridable="yes" Value="ЧаÑтина шлÑху до папки &quot;[2]&quot; неприпуÑтима: пуÑта або перевищує дозволену в ÑиÑтемі довжину." />
432 <String Id="Error1323" Overridable="yes" Value="ШлÑÑ… до папки &quot;[2]&quot; міÑтить неприпуÑтимі Ð´Ð»Ñ ÑˆÐ»Ñху Ñлова." /> 432 <String Id="Error1323" Overridable="yes" Value="ШлÑÑ… до папки &quot;[2]&quot; міÑтить неприпуÑтимі Ð´Ð»Ñ ÑˆÐ»Ñху Ñлова." />
433 <String Id="Error1324" Overridable="yes" Value="ШлÑÑ… до папки &quot;[2]&quot; міÑтить неприпуÑтимий Ñимвол." /> 433 <String Id="Error1324" Overridable="yes" Value="ШлÑÑ… до папки &quot;[2]&quot; міÑтить неприпуÑтимий Ñимвол." />
434 <String Id="Error1325" Overridable="yes" Value="&quot;[2]&quot; не Ñ” припуÑтимим коротким іменем файлу." /> 434 <String Id="Error1325" Overridable="yes" Value="&quot;[2]&quot; не Ñ” припуÑтимим коротким ім'Ñм файлу." />
435 <String Id="Error1326" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² безпеки файлу: [3] GetLastError: [2]" /> 435 <String Id="Error1326" Overridable="yes" Value="Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² безпеки файлу: [3] GetLastError: [2]" />
436 <String Id="Error1327" Overridable="yes" Value="Ðеправильний приÑтрій: [2]" /> 436 <String Id="Error1327" Overridable="yes" Value="Ðеправильний приÑтрій: [2]" />
437 <String Id="Error1328" Overridable="yes" Value="Помилка заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ файлу [2]. Можливо, файл було оновлено в інший ÑпоÑіб, Ñ– це Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ не може його змінити. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½Ñ–ÑˆÐ¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ поÑтачальника виправленнÑ. {{СиÑтемна помилка: [3]}}" /> 437 <String Id="Error1328" Overridable="yes" Value="Помилка заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ файлу [2]. Можливо, файл було оновлено в інший ÑпоÑіб, Ñ– це Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ не може його змінити. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½Ñ–ÑˆÐ¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ поÑтачальника виправленнÑ. {{СиÑтемна помилка: [3]}}" />
438 <String Id="Error1329" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати потрібний файл, оÑкільки в CAB-файлі [2] немає цифрового підпиÑу. Це може Ñвідчити про Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ CAB-файлу." /> 438 <String Id="Error1329" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати потрібний файл, оÑкільки в CAB-файлі [2] немає цифрового підпиÑу. Це може Ñвідчити про Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ CAB-файлу." />
439 <String Id="Error1330" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати потрібний файл, оÑкільки CAB-файл [2] міÑтить недійÑний цифровий підпиÑ. Це може Ñвідчити про Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ CAB-файлу.{{ Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ WinVerifyTrust повернула помилку [3].}}" /> 439 <String Id="Error1330" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати потрібний файл, оÑкільки CAB-файл [2] міÑтить недійÑний цифровий підпиÑ. Це може Ñвідчити про Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ CAB-файлу.{{ Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ WinVerifyTrust повернула помилку [3].}}" />
440 <String Id="Error1331" Overridable="yes" Value="Ðе вдалоÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾ Ñкопіювати файл [2]: помилка CRC." /> 440 <String Id="Error1331" Overridable="yes" Value="Ðе вдалоÑÑŒ належно Ñкопіювати файл [2]: помилка CRC." />
441 <String Id="Error1332" Overridable="yes" Value="Ðе вдалоÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾ переміÑтити файл [2]: помилка CRC." /> 441 <String Id="Error1332" Overridable="yes" Value="Ðе вдалоÑÑŒ належно переміÑтити файл [2]: помилка CRC." />
442 <String Id="Error1333" Overridable="yes" Value="Ðе вдалоÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾ виправити файл [2]: помилка CRC." /> 442 <String Id="Error1333" Overridable="yes" Value="Ðе вдалоÑÑŒ належно виправити файл [2]: помилка CRC." />
443 <String Id="Error1334" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати файл &quot;[2]&quot;, оÑкільки його немає в CAB-файлі &quot;[3]&quot;. Це може Ñвідчити про помилку мережі, помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚-диÑка або проблему з пакетом." /> 443 <String Id="Error1334" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати файл &quot;[2]&quot;, оÑкільки його немає в CAB-файлі &quot;[3]&quot;. Це може Ñвідчити про помилку мережі, помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚-диÑку або проблему з пакетом." />
444 <String Id="Error1335" Overridable="yes" Value="Потрібний Ð´Ð»Ñ Ñ–Ð½ÑталÑції CAB-файл &quot;[2]&quot; пошкоджений Ñ– непридатний Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ. Це може Ñвідчити про помилку мережі, помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚-диÑка або проблему з пакетом." /> 444 <String Id="Error1335" Overridable="yes" Value="Потрібний Ð´Ð»Ñ Ñ–Ð½ÑталÑції CAB-файл &quot;[2]&quot; пошкоджений Ñ– непридатний Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ. Це може Ñвідчити про помилку мережі, помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚-диÑка або проблему з пакетом." />
445 <String Id="Error1336" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового файлу, потрібного Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції.{{ Папка: [3]. Код ÑиÑтемної помилки: [2]}}" /> 445 <String Id="Error1336" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового файлу, потрібного Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції.{{ Папка: [3]. Код ÑиÑтемної помилки: [2]}}" />
446 <String Id="Error1401" Overridable="yes" Value="Ðе вдалоÑÑ Ñтворити розділ: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 446 <String Id="Error1401" Overridable="yes" Value="Ðе вдалоÑÑŒ Ñтворити розділ: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
447 <String Id="Error1402" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ розділ: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 447 <String Id="Error1402" Overridable="yes" Value="Ðе вдалоÑÑŒ відкрити розділ: [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
448 <String Id="Error1403" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] з розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 448 <String Id="Error1403" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] з розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
449 <String Id="Error1404" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ розділ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 449 <String Id="Error1404" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити розділ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
450 <String Id="Error1405" Overridable="yes" Value="Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] з розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 450 <String Id="Error1405" Overridable="yes" Value="Ðе вдалоÑÑŒ прочитати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] з розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
451 <String Id="Error1406" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] до розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 451 <String Id="Error1406" Overridable="yes" Value="Ðе вдалоÑÑŒ запиÑати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ [2] до розділу [3]. {{ СиÑтемна помилка [4].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
452 <String Id="Error1407" Overridable="yes" Value="Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ імена значень Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 452 <String Id="Error1407" Overridable="yes" Value="Ðе вдалоÑÑŒ отримати імена значень Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
453 <String Id="Error1408" Overridable="yes" Value="Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ імена підрозділів Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 453 <String Id="Error1408" Overridable="yes" Value="Ðе вдалоÑÑŒ отримати імена підрозділів Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
454 <String Id="Error1409" Overridable="yes" Value="Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ відомоÑті про безпеку Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 454 <String Id="Error1409" Overridable="yes" Value="Ðе вдалоÑÑŒ прочитати відомоÑті про безпеку Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ [2]. {{ СиÑтемна помилка [3].}} ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð´Ð¾Ñтупу до цього розділу, або звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
455 <String Id="Error1410" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð±Ñ–Ð»ÑŒÑˆÐ¸Ñ‚Ð¸ обÑÑг вільного міÑÑ†Ñ Ð² реєÑтрі. Ð”Ð»Ñ Ñ–Ð½ÑталÑції цього заÑтоÑунку в реєÑтрі має бути [2] КБ вільного міÑцÑ." /> 455 <String Id="Error1410" Overridable="yes" Value="Ðе вдалоÑÑŒ збільшити обÑÑг вільного міÑÑ†Ñ Ð² реєÑтрі. Ð”Ð»Ñ Ñ–Ð½ÑталÑції цього додатку в реєÑтрі має бути [2] КБ вільного міÑцÑ." />
456 <String Id="Error1500" Overridable="yes" Value="ОдночаÑно триває інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції. Ðеобхідно завершити його, перш ніж продовжити цю інÑталÑцію." /> 456 <String Id="Error1500" Overridable="yes" Value="ОдночаÑно триває інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції. Ðеобхідно завершити його, перш ніж продовжити цю інÑталÑцію." />
457 <String Id="Error1501" Overridable="yes" Value="Помилка доÑтупу до захищених даних. ПереконайтеÑÑ, що інÑталÑтор Windows наÑтроєно правильно, Ñ– повторіть інÑталÑцію." /> 457 <String Id="Error1501" Overridable="yes" Value="Помилка доÑтупу до захищених даних. ПереконайтеÑÑŒ, що інÑталÑтор Windows налаштован вірно, Ñ– повторіть інÑталÑцію." />
458 <String Id="Error1502" Overridable="yes" Value="КориÑтувач &quot;[2]&quot; раніше вже починав інÑталÑцію продукту &quot;[3]&quot;. Йому доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñвій Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції, щоб мати змогу кориÑтуватиÑÑ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð¾Ð¼. Зараз продовжитьÑÑ Ð²Ð°Ñˆ поточний Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції." /> 458 <String Id="Error1502" Overridable="yes" Value="КориÑтувач &quot;[2]&quot; раніше вже починав інÑталÑцію продукту &quot;[3]&quot;. Йому доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñвій Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції, щоб мати змогу кориÑтуватиÑÑŒ продуктом. Зараз продовжитьÑÑ Ð²Ð°Ñˆ поточний Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції." />
459 <String Id="Error1503" Overridable="yes" Value="КориÑтувач &quot;[2]&quot; раніше вже починав інÑталÑцію продукту &quot;[3]&quot;. Йому доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñвій Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції, щоб мати змогу кориÑтуватиÑÑ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð¾Ð¼." /> 459 <String Id="Error1503" Overridable="yes" Value="КориÑтувач &quot;[2]&quot; раніше вже починав інÑталÑцію продукту &quot;[3]&quot;. Йому доведетьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñвій Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ–Ð½ÑталÑції, щоб мати змогу кориÑтуватиÑÑ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð¾Ð¼." />
460 <String Id="Error1601" Overridable="yes" Value="Бракує міÑÑ†Ñ Ð½Ð° диÑку. Том: &quot;[2]&quot;; потрібно: [3] КБ; доÑтупно: [4] КБ. Звільніть міÑце на диÑку й повторіть Ñпробу." /> 460 <String Id="Error1601" Overridable="yes" Value="Бракує міÑÑ†Ñ Ð½Ð° диÑку. Том: &quot;[2]&quot;; потрібно: [3] КБ; доÑтупно: [4] КБ. Звільніть міÑце на диÑку й повторіть Ñпробу." />
461 <String Id="Error1602" Overridable="yes" Value="Справді ÑкаÑувати?" /> 461 <String Id="Error1602" Overridable="yes" Value="Справді ÑкаÑувати?" />
462 <String Id="Error1603" Overridable="yes" Value="Файл [2][3] зараз викориÑтовуєтьÑÑ{ в такому процеÑÑ–: ім’Ñ: [4], ідентифікатор: [5], заголовок вікна: &quot;[6]&quot;}. Закрийте цей заÑтоÑунок Ñ– повторіть Ñпробу." /> 462 <String Id="Error1603" Overridable="yes" Value="Файл [2][3] зараз викориÑтовуєтьÑÑ{ в такому процеÑÑ–: ім’Ñ: [4], ідентифікатор: [5], заголовок вікна: &quot;[6]&quot;}. Закрийте цей додаток Ñ– повторіть Ñпробу." />
463 <String Id="Error1604" Overridable="yes" Value="Уже інÑтальовано продукт &quot;[2]&quot;, неÑуміÑний із цим продуктом." /> 463 <String Id="Error1604" Overridable="yes" Value="Уже інÑтальовано продукт &quot;[2]&quot;, неÑуміÑний із цим продуктом." />
464 <String Id="Error1605" Overridable="yes" Value="У томі &quot;[2]&quot; бракує вільного міÑÑ†Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції з увімкнутим відновленнÑм. Потрібно [3] КБ, доÑтупно лише [4] КБ. Щоб продовжити інÑталÑцію без Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про відновленнÑ, натиÑніть кнопку &quot;ПропуÑтити&quot;. Щоб знову перевірити обÑÑг вільного диÑкового проÑтору, натиÑніть кнопку &quot;Повторити&quot;. Щоб вийти із програми інÑталÑції, натиÑніть кнопку &quot;СкаÑувати&quot;." /> 464 <String Id="Error1605" Overridable="yes" Value="У томі &quot;[2]&quot; бракує вільного міÑÑ†Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції з увімкнутим відновленнÑм. Потрібно [3] КБ, доÑтупно лише [4] КБ. Щоб продовжити інÑталÑцію без Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей про відновленнÑ, натиÑніть кнопку &quot;ПропуÑтити&quot;. Щоб знову перевірити обÑÑг вільного диÑкового проÑтору, натиÑніть кнопку &quot;Повторити&quot;. Щоб вийти із програми інÑталÑції, натиÑніть кнопку &quot;СкаÑувати&quot;." />
465 <String Id="Error1606" Overridable="yes" Value="Мережна папка &quot;[2]&quot; недоÑтупна." /> 465 <String Id="Error1606" Overridable="yes" Value="Мережева папка &quot;[2]&quot; недоÑтупна." />
466 <String Id="Error1607" Overridable="yes" Value="Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції необхідно закрити такі заÑтоÑунки:" /> 466 <String Id="Error1607" Overridable="yes" Value="Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ–Ð½ÑталÑції необхідно закрити такі додатки:" />
467 <String Id="Error1608" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ інÑтальовані на комп’ютері ÑуміÑні продукти Ð´Ð»Ñ Ñ–Ð½ÑталÑції цього продукту." /> 467 <String Id="Error1608" Overridable="yes" Value="Ðе вдалоÑÑŒ знайти інÑтальовані на комп’ютері ÑуміÑні продукти Ð´Ð»Ñ Ñ–Ð½ÑталÑції цього продукту." />
468 <String Id="Error1609" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ñтройок безпеки. [2] Ñ” неприпуÑтимим кориÑтувачем або групою. Можливо, ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° пакета або помилка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ контролера домену мережі. Перевірте Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ мережі й натиÑніть кнопку &quot;Повторити&quot;. Щоб завершити інÑталÑцію, натиÑніть кнопку &quot;СкаÑувати&quot;. {{Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ідентифікатор SID кориÑтувача; ÑиÑтемна помилка [3]}}" /> 468 <String Id="Error1609" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ безпеки. [2] Ñ” неприпуÑтимим кориÑтувачем або групою. Можливо, ÑталаÑÑŒ помилка пакету або помилка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ контролеру домену мережі. Перевірте Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ мережі й натиÑніть кнопку &quot;Повторити&quot;. Щоб завершити інÑталÑцію, натиÑніть кнопку &quot;СкаÑувати&quot;. {{Ðе вдалоÑÑŒ знайти ідентифікатор SID кориÑтувача; ÑиÑтемна помилка [3]}}" />
469 <String Id="Error1701" Overridable="yes" Value="Розділ &quot;[2]&quot; неприпуÑтимий. ПереконайтеÑÑ, що введено правильний розділ." /> 469 <String Id="Error1701" Overridable="yes" Value="Розділ &quot;[2]&quot; неприпуÑтимий. ПереконайтеÑÑŒ, що введено правильний розділ." />
470 <String Id="Error1702" Overridable="yes" Value="Перед продовженнÑм наÑÑ‚Ñ€Ð¾ÑŽÐ²Ð°Ð½Ð½Ñ [2] інÑталÑтору необхідно перезавантажити ÑиÑтему. Ð”Ð»Ñ Ð½ÐµÐ³Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñніть кнопку &quot;Так&quot;. Щоб пізніше перезавантажити ÑиÑтему вручну, натиÑніть кнопку &quot;ÐÑ–&quot;." /> 470 <String Id="Error1702" Overridable="yes" Value="Перед продовженнÑм Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ [2] інÑталÑтору необхідно перезавантажити ÑиÑтему. Ð”Ð»Ñ Ð½ÐµÐ³Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñніть кнопку &quot;Так&quot;. Щоб пізніше перезавантажити ÑиÑтему вручну, натиÑніть кнопку &quot;ÐÑ–&quot;." />
471 <String Id="Error1703" Overridable="yes" Value="Щоб внеÑені до конфігурації [2] зміни набрали Ñили, необхідно перезавантажити ÑиÑтему. Ð”Ð»Ñ Ð½ÐµÐ³Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñніть кнопку &quot;Так&quot;. Щоб пізніше перезавантажити ÑиÑтему вручну, натиÑніть кнопку &quot;ÐÑ–&quot;." /> 471 <String Id="Error1703" Overridable="yes" Value="Щоб внеÑені до конфігурації [2] зміни набрали Ñили, необхідно перезавантажити ÑиÑтему. Ð”Ð»Ñ Ð½ÐµÐ³Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ñ‚Ð¸Ñніть кнопку &quot;Так&quot;. Щоб пізніше перезавантажити ÑиÑтему вручну, натиÑніть кнопку &quot;ÐÑ–&quot;." />
472 <String Id="Error1704" Overridable="yes" Value="ІнÑталÑцію програми [2] наразі призупинено. Щоб продовжити, необхідно ÑкаÑувати зміни, внеÑені під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. СкаÑувати ці зміни?" /> 472 <String Id="Error1704" Overridable="yes" Value="ІнÑталÑцію програми [2] наразі призупинено. Щоб продовжити, необхідно ÑкаÑувати зміни, внеÑені під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. СкаÑувати ці зміни?" />
473 <String Id="Error1705" Overridable="yes" Value="Ðе завершено попередню інÑталÑцію програми. Щоб продовжити, необхідно ÑкаÑувати зміни, внеÑені під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. СкаÑувати ці зміни?" /> 473 <String Id="Error1705" Overridable="yes" Value="Ðе завершено попередню інÑталÑцію програми. Щоб продовжити, необхідно ÑкаÑувати зміни, внеÑені під Ñ‡Ð°Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. СкаÑувати ці зміни?" />
474 <String Id="Error1706" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ пакет інÑталÑції Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ [2]. Повторіть інÑталÑцію за допомогою дійÑної копії пакета інÑталÑції &quot;[3]&quot;." /> 474 <String Id="Error1706" Overridable="yes" Value="Ðе вдалоÑÑŒ знайти пакет інÑталÑції Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ [2]. Повторіть інÑталÑцію за допомогою дійÑної копії пакету інÑталÑції &quot;[3]&quot;." />
475 <String Id="Error1707" Overridable="yes" Value="ІнÑталÑцію уÑпішно завершено." /> 475 <String Id="Error1707" Overridable="yes" Value="ІнÑталÑцію уÑпішно завершено." />
476 <String Id="Error1708" Overridable="yes" Value="Помилка інÑталÑції." /> 476 <String Id="Error1708" Overridable="yes" Value="Помилка інÑталÑції." />
477 <String Id="Error1709" Overridable="yes" Value="Продукт: [2] -- [3]" /> 477 <String Id="Error1709" Overridable="yes" Value="Продукт: [2] -- [3]" />
478 <String Id="Error1710" Overridable="yes" Value="Можна повернути комп’ютер до попереднього Ñтану або продовжити інÑталÑцію згодом. Відновити попередній Ñтан?" /> 478 <String Id="Error1710" Overridable="yes" Value="Можна повернути комп’ютер до попереднього Ñтану або продовжити інÑталÑцію згодом. Відновити попередній Ñтан?" />
479 <String Id="Error1711" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° диÑк відомоÑтей про інÑталÑцію. Перевірте, чи доÑтатньо міÑÑ†Ñ Ð½Ð° диÑку, Ñ– натиÑніть кнопку &quot;Повторити&quot;, або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб завершити інÑталÑцію." /> 479 <String Id="Error1711" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° диÑк відомоÑтей про інÑталÑцію. Перевірте, чи доÑтатньо міÑÑ†Ñ Ð½Ð° диÑку, Ñ– натиÑніть кнопку &quot;Повторити&quot;, або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб завершити інÑталÑцію." />
480 <String Id="Error1712" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ принаймні один файл, необхідний Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ Ñтану комп’ютера. Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ." /> 480 <String Id="Error1712" Overridable="yes" Value="Ðе вдалоÑÑŒ знайти принаймні один файл, необхідний Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ Ñтану комп’ютера. Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ." />
481 <String Id="Error1713" Overridable="yes" Value="[2] не вдалоÑÑ Ñ–Ð½Ñталювати один із потрібних продуктів. ЗвернітьÑÑ Ð´Ð¾ групи технічної підтримки. {{СиÑтемна помилка: [3].}}" /> 481 <String Id="Error1713" Overridable="yes" Value="[2] не вдалоÑÑŒ інÑталювати один із потрібних продуктів. ЗвернітьÑÑ Ð´Ð¾ групи технічної підтримки. {{СиÑтемна помилка: [3].}}" />
482 <String Id="Error1714" Overridable="yes" Value="Стару верÑÑ–ÑŽ [2] не можна видалити. ЗвернітьÑÑ Ð´Ð¾ групи технічної підтримки. {{СиÑтемна помилка [3].}}" /> 482 <String Id="Error1714" Overridable="yes" Value="Стару верÑÑ–ÑŽ [2] не можна видалити. ЗвернітьÑÑ Ð´Ð¾ групи технічної підтримки. {{СиÑтемна помилка [3].}}" />
483 <String Id="Error1715" Overridable="yes" Value="ІнÑтальовано [2]" /> 483 <String Id="Error1715" Overridable="yes" Value="ІнÑтальовано [2]" />
484 <String Id="Error1716" Overridable="yes" Value="ÐаÑтроєно [2]" /> 484 <String Id="Error1716" Overridable="yes" Value="Ðалаштовано [2]" />
485 <String Id="Error1717" Overridable="yes" Value="Видалено [2]" /> 485 <String Id="Error1717" Overridable="yes" Value="Видалено [2]" />
486 <String Id="Error1718" Overridable="yes" Value="Файл [2] відхилено за політикою цифрового підпиÑу." /> 486 <String Id="Error1718" Overridable="yes" Value="Файл [2] відхилено за політикою цифрового підпиÑу." />
487 <String Id="Error1719" Overridable="yes" Value="Служба інÑталÑтора Windows недоÑтупна. Це може ÑтатиÑÑ, Ñкщо Windows запущено в безпечному режимі або інÑталÑтор Windows інÑтальовано неправильно. ЗвернітьÑÑ Ð¿Ð¾ допомогу до Ñлужби підтримки." /> 487 <String Id="Error1719" Overridable="yes" Value="Служба інÑталÑтора Windows недоÑтупна. Це може ÑтатиÑÑ, Ñкщо Windows запущено в безпечному режимі або інÑталÑтор Windows інÑтальовано невірно. ЗвернітьÑÑ Ð¿Ð¾ допомогу до Ñлужби підтримки." />
488 <String Id="Error1720" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° пакета інÑталÑтора Windows. Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñценарій, потрібний Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакета. {{Додаткова Ð´Ñ–Ñ [2], помилка Ñценарію [3], [4]: [5] Ñ€Ñдок [6], Ñтовпець [7], [8] }}" /> 488 <String Id="Error1720" Overridable="yes" Value="СталаÑÑŒ помилка пакету інÑталÑтора Windows. Ðе вдалоÑÑŒ запуÑтити Ñценарій, потрібний Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакету. {{Додаткова Ð´Ñ–Ñ [2], помилка Ñценарію [3], [4]: [5] Ñ€Ñдок [6], Ñтовпчик [7], [8] }}" />
489 <String Id="Error1721" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° пакета інÑталÑтора Windows. Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити програму, потрібну Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакета. {{ДіÑ: [2], розташуваннÑ: [3], команда: [4] }}" /> 489 <String Id="Error1721" Overridable="yes" Value="СталаÑÑŒ помилка пакета інÑталÑтора Windows. Ðе вдалоÑÑŒ запуÑтити програму, потрібну Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакету. {{ДіÑ: [2], розташуваннÑ: [3], команда: [4] }}" />
490 <String Id="Error1722" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° пакета інÑталÑтора Windows. Програма, запущена у Ñкладі програми інÑталÑції, неправильно завершила роботу. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакета. {{Ð”Ñ–Ñ [2], розташуваннÑ: [3], команда: [4] }}" /> 490 <String Id="Error1722" Overridable="yes" Value="СталаÑÑŒ помилка пакета інÑталÑтора Windows. Програма, запущена у Ñкладі програми інÑталÑції, неправильно завершила роботу. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакету. {{Ð”Ñ–Ñ [2], розташуваннÑ: [3], команда: [4] }}" />
491 <String Id="Error1723" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° пакета інÑталÑтора Windows. Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити бібліотеку DLL, потрібну Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакета. {{Ð”Ñ–Ñ [2], елемент: [3], бібліотека: [4] }}" /> 491 <String Id="Error1723" Overridable="yes" Value="СталаÑÑŒ помилка пакета інÑталÑтора Windows. Ðе вдалоÑÑŒ запуÑтити бібліотеку DLL, потрібну Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки або поÑтачальника пакету. {{Ð”Ñ–Ñ [2], елемент: [3], бібліотека: [4] }}" />
492 <String Id="Error1724" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑƒÑпішно виконано." /> 492 <String Id="Error1724" Overridable="yes" Value="Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑƒÑпішно виконано." />
493 <String Id="Error1725" Overridable="yes" Value="Помилка видаленнÑ." /> 493 <String Id="Error1725" Overridable="yes" Value="Помилка видаленнÑ." />
494 <String Id="Error1726" Overridable="yes" Value="ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно завершено." /> 494 <String Id="Error1726" Overridable="yes" Value="ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно завершено." />
495 <String Id="Error1727" Overridable="yes" Value="Помилка оголошеннÑ." /> 495 <String Id="Error1727" Overridable="yes" Value="Помилка оголошеннÑ." />
496 <String Id="Error1728" Overridable="yes" Value="ÐаÑÑ‚ÑÐ¾ÑŽÐ²Ð°Ð½Ð½Ñ ÑƒÑпішно завершено." /> 496 <String Id="Error1728" Overridable="yes" Value="ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑпішно завершено." />
497 <String Id="Error1729" Overridable="yes" Value="Помилка наÑÑ‚ÑоюваннÑ." /> 497 <String Id="Error1729" Overridable="yes" Value="Помилка налаштуваннÑ." />
498 <String Id="Error1730" Overridable="yes" Value="Ð”Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ заÑтоÑунку необхідні права адмініÑтратора. Щоб видалити цей заÑтоÑунок, ввійдіть до ÑиÑтеми із правами адмініÑтратора або звернітьÑÑ Ð¿Ð¾ допомогу до групи технічної підтримки." /> 498 <String Id="Error1730" Overridable="yes" Value="Ð”Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ додатку необхідні права адмініÑтратора. Щоб видалити цей додаток, увійдіть до ÑиÑтеми із правами адмініÑтратора або звернітьÑÑ Ð¿Ð¾ допомогу до групи технічної підтримки." />
499 <String Id="Error1731" Overridable="yes" Value="Вихідний пакет інÑталÑції Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ [2] не Ñинхронізовано з пакетом клієнта. Повторіть інÑталÑцію за допомогою дійÑної копії пакета інÑталÑції &quot;[3]&quot;." /> 499 <String Id="Error1731" Overridable="yes" Value="Вихідний пакет інÑталÑції Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ñƒ [2] не Ñинхронізовано з пакетом клієнта. Повторіть інÑталÑцію за допомогою дійÑної копії пакету інÑталÑції &quot;[3]&quot;." />
500 <String Id="Error1732" Overridable="yes" Value="Щоб завершити інÑталÑцію [2], необхідно перезавантажити комп’ютер. Інші кориÑтувачі не вишли із ÑиÑтеми, Ñ– внаÑлідок Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¾Ð½Ð¸ можуть втратити результати Ñвоєї роботи. Перезавантажити зараз?" /> 500 <String Id="Error1732" Overridable="yes" Value="Щоб завершити інÑталÑцію [2], необхідно перезавантажити комп’ютер. Інші кориÑтувачі не вишли із ÑиÑтеми, Ñ– внаÑлідок Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¾Ð½Ð¸ можуть втратити результати Ñвоєї роботи. Перезавантажити зараз?" />
501 <String Id="Error1801" Overridable="yes" Value="ÐеприпуÑтимий шлÑÑ… &quot;[2]&quot;. Укажіть правильний шлÑÑ…." /> 501 <String Id="Error1801" Overridable="yes" Value="ÐеприпуÑтимий шлÑÑ… &quot;[2]&quot;. Вкажіть вірний шлÑÑ…." />
502 <String Id="Error1802" Overridable="yes" Value="Бракує пам’Ñті. Закрийте інші заÑтоÑунки та повторіть Ñпробу." /> 502 <String Id="Error1802" Overridable="yes" Value="Бракує пам’Ñті. Закрийте інші додатки та повторіть Ñпробу." />
503 <String Id="Error1803" Overridable="yes" Value="У приÑтрої [2] немає диÑка. Ð’Ñтавте диÑк Ñ– натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб повернутиÑÑ Ð´Ð¾ вибраного раніше тому." /> 503 <String Id="Error1803" Overridable="yes" Value="У приÑтрої [2] немає диÑку. Ð’Ñтавте диÑк Ñ– натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб повернутиÑÑ Ð´Ð¾ обраного раніше тому." />
504 <String Id="Error1804" Overridable="yes" Value="У приÑтрої [2] немає диÑка. Ð’Ñтавте диÑк Ñ– натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб повернутиÑÑ Ð´Ð¾ вікна переглÑду папок Ñ– вибрати інший том." /> 504 <String Id="Error1804" Overridable="yes" Value="У приÑтрої [2] немає диÑку. Ð’Ñтавте диÑк Ñ– натиÑніть кнопку &quot;Повторити&quot; або натиÑніть кнопку &quot;СкаÑувати&quot;, щоб повернутиÑÑŒ до вікна переглÑду папок Ñ– обрати інший том." />
505 <String Id="Error1805" Overridable="yes" Value="Папка &quot;[2]&quot; не Ñ–Ñнує. Введіть шлÑÑ… до наÑвної папки." /> 505 <String Id="Error1805" Overridable="yes" Value="Папка &quot;[2]&quot; не Ñ–Ñнує. Введіть шлÑÑ… до наÑвної папки." />
506 <String Id="Error1806" Overridable="yes" Value="У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— папки." /> 506 <String Id="Error1806" Overridable="yes" Value="У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— папки." />
507 <String Id="Error1807" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ припуÑтиму папку Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ–Ð½ÑталÑції." /> 507 <String Id="Error1807" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ припуÑтиму папку Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ–Ð½ÑталÑції." />
508 <String Id="Error1901" Overridable="yes" Value="СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· вихідної бази даних інÑталÑції: [2]." /> 508 <String Id="Error1901" Overridable="yes" Value="СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· вихідної бази даних інÑталÑції: [2]." />
509 <String Id="Error1902" Overridable="yes" Value="ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— перезавантаженнÑ: Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2] на [3]. Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— потрібне перезавантаженнÑ." /> 509 <String Id="Error1902" Overridable="yes" Value="ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— перезавантаженнÑ: Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2] на [3]. Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— потрібне перезавантаженнÑ." />
510 <String Id="Error1903" Overridable="yes" Value="ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— перезавантаженнÑ: Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— потрібне перезавантаженнÑ." /> 510 <String Id="Error1903" Overridable="yes" Value="ÐŸÐ»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— перезавантаженнÑ: Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— потрібне перезавантаженнÑ." />
511 <String Id="Error1904" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати модуль [2]. HRESULT [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 511 <String Id="Error1904" Overridable="yes" Value="Ðе вдалоÑÑŒ зареєÑтрувати модуль [2]. HRESULT [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
512 <String Id="Error1905" Overridable="yes" Value="Ðе вдалоÑÑ ÑкаÑувати реєÑтрацію Ð¼Ð¾Ð´ÑƒÐ»Ñ [2]. HRESULT [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 512 <String Id="Error1905" Overridable="yes" Value="Ðе вдалоÑÑŒ ÑкаÑувати реєÑтрацію Ð¼Ð¾Ð´ÑƒÐ»Ñ [2]. HRESULT [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
513 <String Id="Error1906" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ð° [2]. Помилка: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 513 <String Id="Error1906" Overridable="yes" Value="Ðе вдалоÑÑŒ виконати ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÐºÐµÑ‚Ñƒ [2]. Помилка: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
514 <String Id="Error1907" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати шрифт &quot;[2]&quot;. ПереконайтеÑÑ, що ви маєте доÑтатні дозволи на інÑталÑцію шрифтів, а ÑиÑтема підтримує цей шрифт." /> 514 <String Id="Error1907" Overridable="yes" Value="Ðе вдалоÑÑŒ зареєÑтрувати шрифт &quot;[2]&quot;. ПереконайтеÑÑŒ, що ви маєте доÑтатні дозволи на інÑталÑцію шрифтів, а ÑиÑтема підтримує цей шрифт." />
515 <String Id="Error1908" Overridable="yes" Value="Ðе вдалоÑÑ ÑкаÑувати реєÑтрацію шрифту &quot;[2]&quot;. ПереконайтеÑÑ, що ви маєте доÑтатні дозволи на Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²." /> 515 <String Id="Error1908" Overridable="yes" Value="Ðе вдалоÑÑŒ ÑкаÑувати реєÑтрацію шрифту &quot;[2]&quot;. ПереконайтеÑÑ, що ви маєте доÑтатні дозволи на Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð²." />
516 <String Id="Error1909" Overridable="yes" Value="Ðе вдалоÑÑ Ñтворити Ñрлик [2]. ПереконайтеÑÑ, що папка Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ñнує та доÑтупна." /> 516 <String Id="Error1909" Overridable="yes" Value="Ðе вдалоÑÑŒ Ñтворити Ñрлик [2]. ПереконайтеÑÑŒ, що папка Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ñнує та доÑтупна." />
517 <String Id="Error1910" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ñрлик &quot;[2]&quot;. ПереконайтеÑÑ, що файл Ñрлика Ñ–Ñнує та доÑтупний." /> 517 <String Id="Error1910" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити Ñрлик &quot;[2]&quot;. ПереконайтеÑÑ, що файл Ñрлика Ñ–Ñнує та доÑтупний." />
518 <String Id="Error1911" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати бібліотеку типів Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 518 <String Id="Error1911" Overridable="yes" Value="Ðе вдалоÑÑŒ зареєÑтрувати бібліотеку типів Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
519 <String Id="Error1912" Overridable="yes" Value="Ðе вдалоÑÑ ÑкаÑувати реєÑтрацію бібліотеки типів Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 519 <String Id="Error1912" Overridable="yes" Value="Ðе вдалоÑÑŒ ÑкаÑувати реєÑтрацію бібліотеки типів Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ [2]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
520 <String Id="Error1913" Overridable="yes" Value="Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ файл INI [2][3]. ПереконайтеÑÑ, що цей файл Ñ–Ñнує та доÑтупний." /> 520 <String Id="Error1913" Overridable="yes" Value="Ðе вдалоÑÑŒ оновити файл INI [2][3]. ПереконайтеÑÑŒ, що цей файл Ñ–Ñнує та доÑтупний." />
521 <String Id="Error1914" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð·Ð°Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [3] файлом [2] під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ. ПереконайтеÑÑ, що у Ð²Ð°Ñ Ñ” дозвіл на запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу [3]." /> 521 <String Id="Error1914" Overridable="yes" Value="Ðе вдалоÑÑŒ запланувати Ð·Ð°Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ [3] файлом [2] під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ. ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ñ” дозвіл на запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ файлу [3]." />
522 <String Id="Error1915" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ диÑпетчер драйверів ODBC; помилка ODBC [2]: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 522 <String Id="Error1915" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити диÑпетчер драйверів ODBC; помилка ODBC [2]: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
523 <String Id="Error1916" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати диÑпетчер драйверів ODBC; помилка ODBC [2]: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 523 <String Id="Error1916" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати диÑпетчер драйверів ODBC; помилка ODBC [2]: [3]. ЗвернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
524 <String Id="Error1917" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ драйвер ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ñ–Ð² ODBC." /> 524 <String Id="Error1917" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити драйвер ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ñ–Ð² ODBC." />
525 <String Id="Error1918" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати драйвер ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑ, що файл [4] Ñ–Ñнує та доÑтупний." /> 525 <String Id="Error1918" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати драйвер ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑŒ, що файл [4] Ñ–Ñнує та доÑтупний." />
526 <String Id="Error1919" Overridable="yes" Value="Ðе вдалоÑÑ Ð½Ð°Ñтроїти джерело даних ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑ, що файл &quot;[4]&quot; Ñ–Ñнує та доÑтупний." /> 526 <String Id="Error1919" Overridable="yes" Value="Ðе вдалоÑÑŒ налаштувати джерело даних ODBC: [4]; помилка ODBC [2]: [3]. ПереконайтеÑÑŒ, що файл &quot;[4]&quot; Ñ–Ñнує та доÑтупний." />
527 <String Id="Error1920" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку ÑиÑтемних Ñлужб." /> 527 <String Id="Error1920" Overridable="yes" Value="Ðе вдалоÑÑŒ запуÑтити Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку ÑиÑтемних Ñлужб." />
528 <String Id="Error1921" Overridable="yes" Value="Ðе вдалоÑÑ Ð·ÑƒÐ¿Ð¸Ð½Ð¸Ñ‚Ð¸ Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð½Ñ ÑиÑтемних Ñлужб." /> 528 <String Id="Error1921" Overridable="yes" Value="Ðе вдалоÑÑŒ зупинити Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð½Ñ ÑиÑтемних Ñлужб." />
529 <String Id="Error1922" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑиÑтемних Ñлужб." /> 529 <String Id="Error1922" Overridable="yes" Value="Ðе вдалоÑÑŒ видалити Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÑиÑтемних Ñлужб." />
530 <String Id="Error1923" Overridable="yes" Value="Ðе вдалоÑÑ Ñ–Ð½Ñталювати Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ñ–Ð½ÑталÑції ÑиÑтемних Ñлужб." /> 530 <String Id="Error1923" Overridable="yes" Value="Ðе вдалоÑÑŒ інÑталювати Ñлужбу &quot;[2]&quot; ([3]). ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ñ–Ð½ÑталÑції ÑиÑтемних Ñлужб." />
531 <String Id="Error1924" Overridable="yes" Value="Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ змінну Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ &quot;[2]&quot;. ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— змінних оточеннÑ." /> 531 <String Id="Error1924" Overridable="yes" Value="Ðе вдалоÑÑŒ оновити змінну Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ &quot;[2]&quot;. ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— змінних оточеннÑ." />
532 <String Id="Error1925" Overridable="yes" Value="У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав, щоб завершити цю інÑталÑцію Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів комп’ютера. Ввійдіть до ÑиÑтеми Ñк адмініÑтратор Ñ– повторіть Ñпробу." /> 532 <String Id="Error1925" Overridable="yes" Value="У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо прав, щоб завершити цю інÑталÑцію Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів комп’ютера. Увійдіть до ÑиÑтеми Ñк адмініÑтратор Ñ– повторіть Ñпробу." />
533 <String Id="Error1926" Overridable="yes" Value="Ðе вдалоÑÑ Ð²Ñтановити захиÑÑ‚ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ &quot;[3]&quot;. Помилка: [2]. ПереконайтеÑÑ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ–Ð² безпеки Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу." /> 533 <String Id="Error1926" Overridable="yes" Value="Ðе вдалоÑÑŒ вÑтановити захиÑÑ‚ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ &quot;[3]&quot;. Помилка: [2]. ПереконайтеÑÑŒ, що у Ð²Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ–Ð² безпеки Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу." />
534 <String Id="Error1927" Overridable="yes" Value="Служби компонентів (COM+ 1.0) не інÑтальовано на цьому комп’ютері. Ð”Ð»Ñ ÑƒÑпішного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції потрібні Ñлужби компонентів. Служби компонентів доÑтупні в ÑиÑтемі Windows 2000." /> 534 <String Id="Error1927" Overridable="yes" Value="Служби компонентів (COM+ 1.0) не інÑтальовано на цьому комп’ютері. Ð”Ð»Ñ ÑƒÑпішного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— інÑталÑції потрібні Ñлужби компонентів. Служби компонентів доÑтупні в ÑиÑтемі Windows 2000." />
535 <String Id="Error1928" Overridable="yes" Value="Помилка реєÑтрації заÑтоÑунку COM+. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 535 <String Id="Error1928" Overridable="yes" Value="Помилка реєÑтрації заÑтоÑунку COM+. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
536 <String Id="Error1929" Overridable="yes" Value="Помилка ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації заÑтоÑунку COM+. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." /> 536 <String Id="Error1929" Overridable="yes" Value="Помилка ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтрації заÑтоÑунку COM+. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ Ñлужби підтримки." />
537 <String Id="Error1930" Overridable="yes" Value="Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ð¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ñлужби &quot;[2]&quot; ([3])." /> 537 <String Id="Error1930" Overridable="yes" Value="Ðе вдалоÑÑŒ змінити Ð¾Ð¿Ð¸Ñ Ð´Ð»Ñ Ñлужби &quot;[2]&quot; ([3])." />
538 <String Id="Error1931" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ ÑиÑтемний файл [2], оÑкільки його захищає ÑиÑтема Windows. Можливо, Ð´Ð»Ñ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— роботи програми Ñлід оновити операційну ÑиÑтему. {{ВерÑÑ–Ñ Ð¿Ð°ÐºÐµÑ‚Ð°: [3], захищена операційною ÑиÑтемою верÑÑ–Ñ: [4]}}" /> 538 <String Id="Error1931" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑŒ оновити ÑиÑтемний файл [2], оÑкільки його захищає ÑиÑтема Windows. Можливо, Ð´Ð»Ñ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— роботи програми Ñлід оновити операційну ÑиÑтему. {{ВерÑÑ–Ñ Ð¿Ð°ÐºÐµÑ‚Ð°: [3], захищена операційною ÑиÑтемою верÑÑ–Ñ: [4]}}" />
539 <String Id="Error1932" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ файл [2], захищений ÑиÑтемою Windows. {{ВерÑÑ–Ñ Ð¿Ð°ÐºÐµÑ‚Ð°: [3], захищена операційною ÑиÑтемою верÑÑ–Ñ: [4], помилка SFP: [5]}}" /> 539 <String Id="Error1932" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑŒ оновити файл [2], захищений ÑиÑтемою Windows. {{ВерÑÑ–Ñ Ð¿Ð°ÐºÐµÑ‚Ð°: [3], захищена операційною ÑиÑтемою верÑÑ–Ñ: [4], помилка SFP: [5]}}" />
540 <String Id="Error1933" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ принаймні один файл, захищений ÑиÑтемою Windows. {{Помилка SFP: [2]. Перелік захищених файлів:\r\n[3]}}" /> 540 <String Id="Error1933" Overridable="yes" Value="ІнÑталÑтору Windows не вдалоÑÑŒ оновити принаймні один файл, захищений ÑиÑтемою Windows. {{Помилка SFP: [2]. Перелік захищених файлів:\r\n[3]}}" />
541 <String Id="Error1934" Overridable="yes" Value="ІнÑталÑції кориÑтувачів заборонено за політикою цього комп’ютера." /> 541 <String Id="Error1934" Overridable="yes" Value="ІнÑталÑції кориÑтувачів заборонено за політикою цього комп’ютера." />
542 <String Id="Error1935" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ довідки та Ñлужби підтримки. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" /> 542 <String Id="Error1935" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑŒ помилка. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей звернітьÑÑ Ð´Ð¾ довідки та Ñлужби підтримки. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" />
543 <String Id="Error1936" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Ð¡ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ð½Ðµ має належного імені або не підпиÑане ключем мінімальної довжини. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" /> 543 <String Id="Error1936" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑŒ помилка. Ð¡ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ð½Ðµ має належного імені або не підпиÑане ключем мінімальної довжини. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" />
544 <String Id="Error1937" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð°Ð±Ð¾ каталог неприпуÑтимі, чи Ñ—Ñ… не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" /> 544 <String Id="Error1937" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑŒ помилка. ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð°Ð±Ð¾ каталог неприпуÑтимі, чи Ñ—Ñ… не вдалоÑÑŒ перевірити. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" />
545 <String Id="Error1938" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ принаймні один модуль ÑкладаннÑ. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" /> 545 <String Id="Error1938" Overridable="yes" Value="Під Ñ‡Ð°Ñ Ñ–Ð½ÑталÑції ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ &quot;[6]&quot; ÑталаÑÑŒ помилка. Ðе вдалоÑÑŒ знайти принаймні один модуль ÑкладаннÑ. HRESULT: [3]. {{Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÑкладаннÑ: [4], функціÑ: [5], компонент: [2]}}" />
546 546
547 <String Id="UITextbytes" Overridable="yes" Value="байт" /> 547 <String Id="UITextbytes" Overridable="yes" Value="байт" />
548 <String Id="UITextGB" Overridable="yes" Value="ГБ" /> 548 <String Id="UITextGB" Overridable="yes" Value="ГБ" />
@@ -557,9 +557,9 @@
557 <String Id="UITextMenuLocal" Overridable="yes" Value="Буде інÑтальовано на локальний жорÑткий диÑк" /> 557 <String Id="UITextMenuLocal" Overridable="yes" Value="Буде інÑтальовано на локальний жорÑткий диÑк" />
558 <String Id="UITextMenuNetwork" Overridable="yes" Value="Буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" /> 558 <String Id="UITextMenuNetwork" Overridable="yes" Value="Буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" />
559 <String Id="UITextNewFolder" Overridable="yes" Value="Папка|Ðова папка" /> 559 <String Id="UITextNewFolder" Overridable="yes" Value="Папка|Ðова папка" />
560 <String Id="UITextScriptInProgress" Overridable="yes" Value="Триває Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¸Ñ… даних..." /> 560 <String Id="UITextScriptInProgress" Overridable="yes" Value="Триває збір потрібних даних..." />
561 <String Id="UITextSelAbsentAbsent" Overridable="yes" Value="Цей компонент не буде інÑтальовано" /> 561 <String Id="UITextSelAbsentAbsent" Overridable="yes" Value="Цей компонент не буде інÑтальовано" />
562 <String Id="UITextSelAbsentAdvertise" Overridable="yes" Value="Цей компонент буде наÑтроєно Ð´Ð»Ñ Ñ–Ð½ÑталÑції в разі потреби" /> 562 <String Id="UITextSelAbsentAdvertise" Overridable="yes" Value="Цей компонент буде налаштовано Ð´Ð»Ñ Ñ–Ð½ÑталÑції в разі потреби" />
563 <String Id="UITextSelAbsentCD" Overridable="yes" Value="Цей компонент буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з компакт-диÑка" /> 563 <String Id="UITextSelAbsentCD" Overridable="yes" Value="Цей компонент буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з компакт-диÑка" />
564 <String Id="UITextSelAbsentLocal" Overridable="yes" Value="Цей компонент буде інÑтальовано на локальний жорÑткий диÑк" /> 564 <String Id="UITextSelAbsentLocal" Overridable="yes" Value="Цей компонент буде інÑтальовано на локальний жорÑткий диÑк" />
565 <String Id="UITextSelAbsentNetwork" Overridable="yes" Value="Цей компонент буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" /> 565 <String Id="UITextSelAbsentNetwork" Overridable="yes" Value="Цей компонент буде інÑтальовано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" />
@@ -576,7 +576,7 @@
576 <String Id="UITextSelChildCostPos" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку." /> 576 <String Id="UITextSelChildCostPos" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку." />
577 <String Id="UITextSelCostPending" Overridable="yes" Value="Триває обчиÑÐ»ÐµÐ½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð°..." /> 577 <String Id="UITextSelCostPending" Overridable="yes" Value="Триває обчиÑÐ»ÐµÐ½Ð½Ñ Ð¼Ñ–ÑÑ†Ñ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð°..." />
578 <String Id="UITextSelLocalAbsent" Overridable="yes" Value="Цей компонент буде повніÑтю видалено" /> 578 <String Id="UITextSelLocalAbsent" Overridable="yes" Value="Цей компонент буде повніÑтю видалено" />
579 <String Id="UITextSelLocalAdvertise" Overridable="yes" Value="Цей компонент буде видалено з локального жорÑткого диÑка, але наÑтроєно Ð´Ð»Ñ Ñ–Ð½ÑталÑції в разі потреби" /> 579 <String Id="UITextSelLocalAdvertise" Overridable="yes" Value="Цей компонент буде видалено з локального жорÑткого диÑка, але налаштовано Ð´Ð»Ñ Ñ–Ð½ÑталÑції в разі потреби" />
580 <String Id="UITextSelLocalCD" Overridable="yes" Value="Компонент буде видалено з локального жорÑткого диÑка, але він залишитьÑÑ Ð´Ð¾Ñтупним Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з компакт-диÑка" /> 580 <String Id="UITextSelLocalCD" Overridable="yes" Value="Компонент буде видалено з локального жорÑткого диÑка, але він залишитьÑÑ Ð´Ð¾Ñтупним Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з компакт-диÑка" />
581 <String Id="UITextSelLocalLocal" Overridable="yes" Value="Цей компонент залишитьÑÑ Ð½Ð° локальному жорÑткому диÑку" /> 581 <String Id="UITextSelLocalLocal" Overridable="yes" Value="Цей компонент залишитьÑÑ Ð½Ð° локальному жорÑткому диÑку" />
582 <String Id="UITextSelLocalNetwork" Overridable="yes" Value="Компонент буде видалено з локального жорÑткого диÑка, але він залишитьÑÑ Ð´Ð¾Ñтупним Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" /> 582 <String Id="UITextSelLocalNetwork" Overridable="yes" Value="Компонент буде видалено з локального жорÑткого диÑка, але він залишитьÑÑ Ð´Ð¾Ñтупним Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" />
@@ -585,7 +585,7 @@
585 <String Id="UITextSelNetworkLocal" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента запуÑк із мережі буде замінено на інÑталÑцію на локальний жорÑткий диÑк" /> 585 <String Id="UITextSelNetworkLocal" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента запуÑк із мережі буде замінено на інÑталÑцію на локальний жорÑткий диÑк" />
586 <String Id="UITextSelNetworkNetwork" Overridable="yes" Value="Цей компонент залишитьÑÑ Ð´Ð¾Ñтупний Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" /> 586 <String Id="UITextSelNetworkNetwork" Overridable="yes" Value="Цей компонент залишитьÑÑ Ð´Ð¾Ñтупний Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку з мережі" />
587 <String Id="UITextSelParentCostNegNeg" Overridable="yes" Value="Цей компонент звільнÑÑ” [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Ці чаÑтини звільнÑють [4] на жорÑткому диÑку." /> 587 <String Id="UITextSelParentCostNegNeg" Overridable="yes" Value="Цей компонент звільнÑÑ” [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Ці чаÑтини звільнÑють [4] на жорÑткому диÑку." />
588 <String Id="UITextSelParentCostNegPos" Overridable="yes" Value="Компонент звільнÑÑ” [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Разом вони потребують [4] на жорÑткому диÑку." /> 588 <String Id="UITextSelParentCostNegPos" Overridable="yes" Value="Компонент звільнÑÑ” [1] на жорÑткому диÑку. Обрано [2] з [3] його чаÑтин. Разом вони потребують [4] на жорÑткому диÑку." />
589 <String Id="UITextSelParentCostPosNeg" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Разом вони звільнÑть [4] на жорÑткому диÑку." /> 589 <String Id="UITextSelParentCostPosNeg" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Разом вони звільнÑть [4] на жорÑткому диÑку." />
590 <String Id="UITextSelParentCostPosPos" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Разом вони потребують [4] на жорÑткому диÑку." /> 590 <String Id="UITextSelParentCostPosPos" Overridable="yes" Value="Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ компонента потрібно [1] на жорÑткому диÑку. Вибрано [2] з [3] його чаÑтин. Разом вони потребують [4] на жорÑткому диÑку." />
591 <String Id="UITextTimeRemaining" Overridable="yes" Value="ЗалишилоÑÑŒ чаÑу: {[1] хв. }{[2] Ñек.}" /> 591 <String Id="UITextTimeRemaining" Overridable="yes" Value="ЗалишилоÑÑŒ чаÑу: {[1] хв. }{[2] Ñек.}" />
diff --git a/src/ext/Util/README.md b/src/ext/Util/README.md
index 11d7a363..2bbf17ce 100644
--- a/src/ext/Util/README.md
+++ b/src/ext/Util/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.Util.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.Util.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/Util/Util.wixext.sln b/src/ext/Util/Util.wixext.sln
deleted file mode 100644
index 0168dab9..00000000
--- a/src/ext/Util/Util.wixext.sln
+++ /dev/null
@@ -1,87 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.1.32228.430
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utilbe", "be\utilbe.vcxproj", "{630C1EE7-2517-4A8C-83E3-DA1150308B58}"
7EndProject
8Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utilca", "ca\utilca.vcxproj", "{076018F7-19BD-423A-ABBF-229273DA08D8}"
9EndProject
10Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "util", "wixlib\util.wixproj", "{1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Util.wixext", "wixext\WixToolset.Util.wixext.csproj", "{6CF033EB-0A39-4AC6-9D41-9BD506352045}"
13EndProject
14Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Util", "test\WixToolsetTest.Util\WixToolsetTest.Util.csproj", "{D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}"
15EndProject
16Global
17 GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 Debug|Any CPU = Debug|Any CPU
19 Debug|x64 = Debug|x64
20 Debug|x86 = Debug|x86
21 Release|Any CPU = Release|Any CPU
22 Release|x64 = Release|x64
23 Release|x86 = Release|x86
24 EndGlobalSection
25 GlobalSection(ProjectConfigurationPlatforms) = postSolution
26 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Debug|Any CPU.ActiveCfg = Debug|Win32
27 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Debug|Any CPU.Build.0 = Debug|Win32
28 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Debug|x64.ActiveCfg = Debug|Win32
29 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Debug|x86.ActiveCfg = Debug|Win32
30 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Debug|x86.Build.0 = Debug|Win32
31 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Release|Any CPU.ActiveCfg = Release|Win32
32 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Release|Any CPU.Build.0 = Release|Win32
33 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Release|x64.ActiveCfg = Release|Win32
34 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Release|x86.ActiveCfg = Release|Win32
35 {630C1EE7-2517-4A8C-83E3-DA1150308B58}.Release|x86.Build.0 = Release|Win32
36 {076018F7-19BD-423A-ABBF-229273DA08D8}.Debug|Any CPU.ActiveCfg = Debug|Win32
37 {076018F7-19BD-423A-ABBF-229273DA08D8}.Debug|Any CPU.Build.0 = Debug|Win32
38 {076018F7-19BD-423A-ABBF-229273DA08D8}.Debug|x64.ActiveCfg = Debug|Win32
39 {076018F7-19BD-423A-ABBF-229273DA08D8}.Debug|x86.ActiveCfg = Debug|Win32
40 {076018F7-19BD-423A-ABBF-229273DA08D8}.Debug|x86.Build.0 = Debug|Win32
41 {076018F7-19BD-423A-ABBF-229273DA08D8}.Release|Any CPU.ActiveCfg = Release|Win32
42 {076018F7-19BD-423A-ABBF-229273DA08D8}.Release|Any CPU.Build.0 = Release|Win32
43 {076018F7-19BD-423A-ABBF-229273DA08D8}.Release|x64.ActiveCfg = Release|Win32
44 {076018F7-19BD-423A-ABBF-229273DA08D8}.Release|x86.ActiveCfg = Release|Win32
45 {076018F7-19BD-423A-ABBF-229273DA08D8}.Release|x86.Build.0 = Release|Win32
46 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|Any CPU.ActiveCfg = Debug|x86
47 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|Any CPU.Build.0 = Debug|x86
48 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x64.ActiveCfg = Debug|x86
49 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x86.ActiveCfg = Debug|x86
50 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Debug|x86.Build.0 = Debug|x86
51 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|Any CPU.ActiveCfg = Release|x86
52 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|Any CPU.Build.0 = Release|x86
53 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x64.ActiveCfg = Release|x86
54 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x86.ActiveCfg = Release|x86
55 {1ACFFEFD-505A-41A5-ACBF-A02B7B473AA2}.Release|x86.Build.0 = Release|x86
56 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
57 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|Any CPU.Build.0 = Debug|Any CPU
58 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x64.ActiveCfg = Debug|Any CPU
59 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x64.Build.0 = Debug|Any CPU
60 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x86.ActiveCfg = Debug|Any CPU
61 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Debug|x86.Build.0 = Debug|Any CPU
62 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|Any CPU.ActiveCfg = Release|Any CPU
63 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|Any CPU.Build.0 = Release|Any CPU
64 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x64.ActiveCfg = Release|Any CPU
65 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x64.Build.0 = Release|Any CPU
66 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x86.ActiveCfg = Release|Any CPU
67 {6CF033EB-0A39-4AC6-9D41-9BD506352045}.Release|x86.Build.0 = Release|Any CPU
68 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
69 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|Any CPU.Build.0 = Debug|Any CPU
70 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x64.ActiveCfg = Debug|Any CPU
71 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x64.Build.0 = Debug|Any CPU
72 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x86.ActiveCfg = Debug|Any CPU
73 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Debug|x86.Build.0 = Debug|Any CPU
74 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|Any CPU.ActiveCfg = Release|Any CPU
75 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|Any CPU.Build.0 = Release|Any CPU
76 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x64.ActiveCfg = Release|Any CPU
77 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x64.Build.0 = Release|Any CPU
78 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x86.ActiveCfg = Release|Any CPU
79 {D5D34EC4-AF91-4B11-AC0A-FA5242AE924B}.Release|x86.Build.0 = Release|Any CPU
80 EndGlobalSection
81 GlobalSection(SolutionProperties) = preSolution
82 HideSolutionNode = FALSE
83 EndGlobalSection
84 GlobalSection(ExtensibilityGlobals) = postSolution
85 SolutionGuid = {E4566A6B-47D0-4EA0-989A-D763AC39105D}
86 EndGlobalSection
87EndGlobal
diff --git a/src/ext/Util/Util.wixext.slnx b/src/ext/Util/Util.wixext.slnx
new file mode 100644
index 00000000..737fba27
--- /dev/null
+++ b/src/ext/Util/Util.wixext.slnx
@@ -0,0 +1,22 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="be/utilbe.vcxproj" Id="630c1ee7-2517-4a8c-83e3-da1150308b58">
8 <Platform Project="Win32" />
9 <Build Solution="*|x64" Project="false" />
10 </Project>
11 <Project Path="ca/utilca.vcxproj" Id="076018f7-19bd-423a-abbf-229273da08d8">
12 <Platform Project="Win32" />
13 <Build Solution="*|x64" Project="false" />
14 </Project>
15 <Project Path="test/WixToolsetTest.Util/WixToolsetTest.Util.csproj" />
16 <Project Path="wixext/WixToolset.Util.wixext.csproj" />
17 <Project Path="wixlib/util.wixproj">
18 <Platform Project="x86" />
19 <Build Solution="*|Any CPU" />
20 <Build Solution="*|x86" />
21 </Project>
22</Solution>
diff --git a/src/ext/Util/be/utilsearch.cpp b/src/ext/Util/be/utilsearch.cpp
index 59c497e3..a0818963 100644
--- a/src/ext/Util/be/utilsearch.cpp
+++ b/src/ext/Util/be/utilsearch.cpp
@@ -47,7 +47,7 @@ STDMETHODIMP UtilSearchParseFromXml(
47 BextExitOnFailure(hr, "Failed to get @Id."); 47 BextExitOnFailure(hr, "Failed to get @Id.");
48 48
49 // Read type specific attributes. 49 // Read type specific attributes.
50 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"WixWindowsFeatureSearch", -1)) 50 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrNodeName, -1, L"WixWindowsFeatureSearch", -1, FALSE))
51 { 51 {
52 pSearch->Type = UTIL_SEARCH_TYPE_WINDOWS_FEATURE_SEARCH; 52 pSearch->Type = UTIL_SEARCH_TYPE_WINDOWS_FEATURE_SEARCH;
53 53
@@ -55,7 +55,7 @@ STDMETHODIMP UtilSearchParseFromXml(
55 hr = XmlGetAttributeEx(pixnNode, L"Type", &scz); 55 hr = XmlGetAttributeEx(pixnNode, L"Type", &scz);
56 BextExitOnFailure(hr, "Failed to get @Type."); 56 BextExitOnFailure(hr, "Failed to get @Type.");
57 57
58 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"sha2CodeSigning", -1)) 58 if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"sha2CodeSigning", -1, FALSE))
59 { 59 {
60 pSearch->WindowsFeatureSearch.type = UTIL_WINDOWS_FEATURE_SEARCH_TYPE_SHA2_CODE_SIGNING; 60 pSearch->WindowsFeatureSearch.type = UTIL_WINDOWS_FEATURE_SEARCH_TYPE_SHA2_CODE_SIGNING;
61 } 61 }
@@ -144,7 +144,7 @@ STDMETHODIMP UtilSearchFindById(
144 { 144 {
145 UTIL_SEARCH* pSearch = &pSearches->rgSearches[i]; 145 UTIL_SEARCH* pSearch = &pSearches->rgSearches[i];
146 146
147 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, pSearch->sczId, -1, wzId, -1)) 147 if (CSTR_EQUAL == ::CompareStringOrdinal(pSearch->sczId, -1, wzId, -1, FALSE))
148 { 148 {
149 *ppSearch = pSearch; 149 *ppSearch = pSearch;
150 ExitFunction1(hr = S_OK); 150 ExitFunction1(hr = S_OK);
diff --git a/src/ext/Util/ca/utilca.vcxproj b/src/ext/Util/ca/utilca.vcxproj
index 5dbe2792..e7cbc372 100644
--- a/src/ext/Util/ca/utilca.vcxproj
+++ b/src/ext/Util/ca/utilca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
index 03d87e4e..b29607c7 100644
--- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
@@ -1,15 +1,18 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.Util 7namespace WixToolsetTest.Util
4{ 8{
5 using System;
6 using System.IO; 9 using System.IO;
7 using System.Linq; 10 using System.Linq;
8 using System.Xml; 11 using System.Xml;
9 using System.Xml.Linq; 12 using System.Xml.Linq;
10 using Microsoft.VisualStudio.TestTools.UnitTesting; 13 using Microsoft.VisualStudio.TestTools.UnitTesting;
11 using WixInternal.MSTestSupport;
12 using WixInternal.Core.MSTestPackage; 14 using WixInternal.Core.MSTestPackage;
15 using WixInternal.MSTestSupport;
13 using WixToolset.Util; 16 using WixToolset.Util;
14 17
15 [TestClass] 18 [TestClass]
@@ -374,7 +377,7 @@ namespace WixToolsetTest.Util
374 extractResult.AssertSuccess(); 377 extractResult.AssertSuccess();
375 378
376 var bootstrapperExtensionDatas = extractResult.SelectBootstrapperExtensionDataNodes("/be:BootstrapperExtensionData/be:BootstrapperExtension[@Id='Wix4UtilBootstrapperExtension_X86']"); 379 var bootstrapperExtensionDatas = extractResult.SelectBootstrapperExtensionDataNodes("/be:BootstrapperExtensionData/be:BootstrapperExtension[@Id='Wix4UtilBootstrapperExtension_X86']");
377 Assert.AreEqual(1, bootstrapperExtensionDatas.Count); 380 Assert.HasCount(1, bootstrapperExtensionDatas);
378 Assert.AreEqual("<BootstrapperExtension Id='Wix4UtilBootstrapperExtension_X86'>" + 381 Assert.AreEqual("<BootstrapperExtension Id='Wix4UtilBootstrapperExtension_X86'>" +
379 "<WixWindowsFeatureSearch Id='DetectSHA2SupportId' Type='sha2CodeSigning' />" + 382 "<WixWindowsFeatureSearch Id='DetectSHA2SupportId' Type='sha2CodeSigning' />" +
380 "</BootstrapperExtension>", bootstrapperExtensionDatas[0].GetTestXml()); 383 "</BootstrapperExtension>", bootstrapperExtensionDatas[0].GetTestXml());
diff --git a/src/ext/Util/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj b/src/ext/Util/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
index 4036c3ab..b5ea9d2e 100644
--- a/src/ext/Util/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
+++ b/src/ext/Util/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/Util/util_t.proj b/src/ext/Util/util_t.proj
index 6ec63476..02be4b49 100644
--- a/src/ext/Util/util_t.proj
+++ b/src/ext/Util/util_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Util\WixToolsetTest.Util.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.Util\WixToolsetTest.Util.csproj" />
7 <ProjectReference Include="wixext\WixToolset.Util.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Util.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.Util.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.Util.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.Util\WixToolsetTest.Util.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/Util/wixext/UtilCompiler.cs b/src/ext/Util/wixext/UtilCompiler.cs
index 1ad27322..919cc49b 100644
--- a/src/ext/Util/wixext/UtilCompiler.cs
+++ b/src/ext/Util/wixext/UtilCompiler.cs
@@ -2736,8 +2736,11 @@ namespace WixToolset.Util
2736 case "assignment": 2736 case "assignment":
2737 type = WixProductSearchType.Assignment; 2737 type = WixProductSearchType.Assignment;
2738 break; 2738 break;
2739 case "exists":
2740 type = WixProductSearchType.Exists;
2741 break;
2739 default: 2742 default:
2740 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, attrib.Parent.Name.LocalName, attrib.Name.LocalName, result, "version", "language", "state", "assignment")); 2743 this.Messaging.Write(ErrorMessages.IllegalAttributeValue(sourceLineNumbers, attrib.Parent.Name.LocalName, attrib.Name.LocalName, result, "version", "language", "state", "assignment", "exists"));
2741 break; 2744 break;
2742 } 2745 }
2743 break; 2746 break;
diff --git a/src/ext/Util/wixext/UtilDecompiler.cs b/src/ext/Util/wixext/UtilDecompiler.cs
index cde64f8f..fb6d02e5 100644
--- a/src/ext/Util/wixext/UtilDecompiler.cs
+++ b/src/ext/Util/wixext/UtilDecompiler.cs
@@ -538,7 +538,7 @@ namespace WixToolset.Util
538 new XAttribute("Name", Path.GetFileNameWithoutExtension(row.FieldAsString(3))), // remove .lnk/.url extension because compiler extension adds it back for us 538 new XAttribute("Name", Path.GetFileNameWithoutExtension(row.FieldAsString(3))), // remove .lnk/.url extension because compiler extension adds it back for us
539 new XAttribute("Type", type), 539 new XAttribute("Type", type),
540 new XAttribute("Target", row.FieldAsString(4)), 540 new XAttribute("Target", row.FieldAsString(4)),
541 new XAttribute("IconFile", row.FieldAsString(6)), 541 AttributeIfNotNull("IconFile", row, 6),
542 NumericAttributeIfNotNull("IconIndex", row, 7) 542 NumericAttributeIfNotNull("IconIndex", row, 7)
543 ); 543 );
544 544
diff --git a/src/ext/VisualStudio/README.md b/src/ext/VisualStudio/README.md
index a418d49b..bf48670c 100644
--- a/src/ext/VisualStudio/README.md
+++ b/src/ext/VisualStudio/README.md
@@ -17,9 +17,9 @@ To pay the Maintenance Fee, [become a Sponsor](https://github.com/sponsors/wixto
17Add the WiX Extension as a PackageReference to your .wixproj: 17Add the WiX Extension as a PackageReference to your .wixproj:
18 18
19``` 19```
20<Project Sdk="WixToolset.Sdk/6.0.0"> 20<Project Sdk="WixToolset.Sdk/7.0.0">
21 <ItemGroup> 21 <ItemGroup>
22 <PackageReference Include="WixToolset.VisualStudio.wixext" Version="6.0.0" /> 22 <PackageReference Include="WixToolset.VisualStudio.wixext" Version="7.0.0" />
23 </ItemGroup> 23 </ItemGroup>
24</Project> 24</Project>
25``` 25```
diff --git a/src/ext/VisualStudio/VisualStudio.wixext.sln b/src/ext/VisualStudio/VisualStudio.wixext.sln
deleted file mode 100644
index f5f0ad3a..00000000
--- a/src/ext/VisualStudio/VisualStudio.wixext.sln
+++ /dev/null
@@ -1,84 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.30611.23
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vsca", "ca\vsca.vcxproj", "{45308B85-0628-4978-8FC8-6AD9E1AD5949}"
7EndProject
8Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "vs", "wixlib\vs.wixproj", "{14345C9D-8AF8-435A-BB1B-E067CE7EB321}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.VisualStudio.wixext", "wixext\WixToolset.VisualStudio.wixext.csproj", "{61BFD377-9DE1-48B4-8687-560DF68D6F3B}"
11EndProject
12Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.VisualStudio", "test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj", "{DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}"
13EndProject
14Global
15 GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 Debug|Any CPU = Debug|Any CPU
17 Debug|x64 = Debug|x64
18 Debug|x86 = Debug|x86
19 Release|Any CPU = Release|Any CPU
20 Release|x64 = Release|x64
21 Release|x86 = Release|x86
22 EndGlobalSection
23 GlobalSection(ProjectConfigurationPlatforms) = postSolution
24 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Debug|Any CPU.ActiveCfg = Debug|Win32
25 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Debug|Any CPU.Build.0 = Debug|Win32
26 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Debug|x64.ActiveCfg = Debug|Win32
27 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Debug|x86.ActiveCfg = Debug|Win32
28 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Debug|x86.Build.0 = Debug|Win32
29 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Release|Any CPU.ActiveCfg = Release|Win32
30 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Release|Any CPU.Build.0 = Release|Win32
31 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Release|x64.ActiveCfg = Release|Win32
32 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Release|x86.ActiveCfg = Release|Win32
33 {45308B85-0628-4978-8FC8-6AD9E1AD5949}.Release|x86.Build.0 = Release|Win32
34 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|Any CPU.ActiveCfg = Debug|x86
35 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|Any CPU.Build.0 = Debug|x86
36 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x64.ActiveCfg = Debug|x86
37 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x86.ActiveCfg = Debug|x86
38 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x86.Build.0 = Debug|x86
39 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|Any CPU.ActiveCfg = Release|x86
40 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x64.ActiveCfg = Release|x86
41 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x86.ActiveCfg = Release|x86
42 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x86.Build.0 = Release|x86
43 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
44 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
45 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|x64.ActiveCfg = Debug|Any CPU
46 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|x64.Build.0 = Debug|Any CPU
47 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|x86.ActiveCfg = Debug|Any CPU
48 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Debug|x86.Build.0 = Debug|Any CPU
49 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
50 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|Any CPU.Build.0 = Release|Any CPU
51 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|x64.ActiveCfg = Release|Any CPU
52 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|x64.Build.0 = Release|Any CPU
53 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|x86.ActiveCfg = Release|Any CPU
54 {61BFD377-9DE1-48B4-8687-560DF68D6F3B}.Release|x86.Build.0 = Release|Any CPU
55 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|Any CPU.ActiveCfg = Debug|x86
56 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|Any CPU.Build.0 = Debug|x86
57 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x64.ActiveCfg = Debug|x86
58 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x86.ActiveCfg = Debug|x86
59 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Debug|x86.Build.0 = Debug|x86
60 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|Any CPU.ActiveCfg = Release|x86
61 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|Any CPU.Build.0 = Release|x86
62 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x64.ActiveCfg = Release|x86
63 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x86.ActiveCfg = Release|x86
64 {14345C9D-8AF8-435A-BB1B-E067CE7EB321}.Release|x86.Build.0 = Release|x86
65 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
66 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
67 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|x64.ActiveCfg = Debug|Any CPU
68 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|x64.Build.0 = Debug|Any CPU
69 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|x86.ActiveCfg = Debug|Any CPU
70 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Debug|x86.Build.0 = Debug|Any CPU
71 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
72 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|Any CPU.Build.0 = Release|Any CPU
73 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|x64.ActiveCfg = Release|Any CPU
74 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|x64.Build.0 = Release|Any CPU
75 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|x86.ActiveCfg = Release|Any CPU
76 {DD2BD0F7-1E4A-4D11-954C-3505323C4E1B}.Release|x86.Build.0 = Release|Any CPU
77 EndGlobalSection
78 GlobalSection(SolutionProperties) = preSolution
79 HideSolutionNode = FALSE
80 EndGlobalSection
81 GlobalSection(ExtensibilityGlobals) = postSolution
82 SolutionGuid = {E4566A6B-47D0-4EA0-989A-D763AC39105D}
83 EndGlobalSection
84EndGlobal
diff --git a/src/ext/VisualStudio/VisualStudio.wixext.slnx b/src/ext/VisualStudio/VisualStudio.wixext.slnx
new file mode 100644
index 00000000..f66468a2
--- /dev/null
+++ b/src/ext/VisualStudio/VisualStudio.wixext.slnx
@@ -0,0 +1,18 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="ca/vsca.vcxproj" Id="45308b85-0628-4978-8fc8-6ad9e1ad5949">
8 <Platform Project="Win32" />
9 <Build Solution="*|x64" Project="false" />
10 </Project>
11 <Project Path="test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj" />
12 <Project Path="wixext/WixToolset.VisualStudio.wixext.csproj" />
13 <Project Path="wixlib/vs.wixproj">
14 <Platform Project="x86" />
15 <Build Solution="*|Any CPU" />
16 <Build Solution="*|x86" />
17 </Project>
18</Solution>
diff --git a/src/ext/VisualStudio/ca/vsca.cpp b/src/ext/VisualStudio/ca/vsca.cpp
index 736add1f..681187d6 100644
--- a/src/ext/VisualStudio/ca/vsca.cpp
+++ b/src/ext/VisualStudio/ca/vsca.cpp
@@ -219,7 +219,7 @@ static HRESULT InstanceInProducts(
219 { 219 {
220 const LPCWSTR wzProduct = rgwzProducts[i]; 220 const LPCWSTR wzProduct = rgwzProducts[i];
221 221
222 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, bstrId, -1, wzProduct, -1)) 222 if (CSTR_EQUAL == ::CompareStringOrdinal(bstrId, -1, wzProduct, -1, TRUE))
223 { 223 {
224 hr = S_OK; 224 hr = S_OK;
225 ExitFunction(); 225 ExitFunction();
@@ -579,7 +579,7 @@ static HRESULT SetPropertyForComponent(
579 { 579 {
580 const VS_COMPONENT_PROPERTY* pComponent = &rgComponents[i]; 580 const VS_COMPONENT_PROPERTY* pComponent = &rgComponents[i];
581 581
582 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, pComponent->pwzComponent, -1, wzComponent, -1)) 582 if (CSTR_EQUAL == ::CompareStringOrdinal(pComponent->pwzComponent, -1, wzComponent, -1, TRUE))
583 { 583 {
584 hr = WcaSetIntProperty(pComponent->pwzProperty, 1); 584 hr = WcaSetIntProperty(pComponent->pwzProperty, 1);
585 ExitOnFailure(hr, "Failed to set property: %ls", pComponent->pwzProperty); 585 ExitOnFailure(hr, "Failed to set property: %ls", pComponent->pwzProperty);
diff --git a/src/ext/VisualStudio/ca/vsca.vcxproj b/src/ext/VisualStudio/ca/vsca.vcxproj
index a2854f15..5cb20b41 100644
--- a/src/ext/VisualStudio/ca/vsca.vcxproj
+++ b/src/ext/VisualStudio/ca/vsca.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|Win32"> 6 <ProjectConfiguration Include="Debug|Win32">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs b/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs
index 992ac953..361f5274 100644
--- a/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs
+++ b/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs
@@ -1,8 +1,11 @@
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 2
3using Microsoft.VisualStudio.TestTools.UnitTesting;
4
5[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
6
3namespace WixToolsetTest.VisualStudio 7namespace WixToolsetTest.VisualStudio
4{ 8{
5 using Microsoft.VisualStudio.TestTools.UnitTesting;
6 using WixInternal.MSTestSupport; 9 using WixInternal.MSTestSupport;
7 using WixInternal.Core.MSTestPackage; 10 using WixInternal.Core.MSTestPackage;
8 using WixToolset.VisualStudio; 11 using WixToolset.VisualStudio;
diff --git a/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj b/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj
index 9cfb6867..8b8f6ad9 100644
--- a/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj
+++ b/src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/WixToolsetTest.VisualStudio.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="MSTest.Sdk"> 4<Project Sdk="MSTest.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixMSTestProject>true</IsWixMSTestProject> 7 <IsWixMSTestProject>true</IsWixMSTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9
diff --git a/src/ext/VisualStudio/visualstudio_t.proj b/src/ext/VisualStudio/visualstudio_t.proj
index 9b3f5b4f..d6c101e6 100644
--- a/src/ext/VisualStudio/visualstudio_t.proj
+++ b/src/ext/VisualStudio/visualstudio_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj" Targets="Test" /> 6 <ProjectReference Include="test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj" />
7 <ProjectReference Include="wixext\WixToolset.VisualStudio.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.VisualStudio.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
@@ -14,4 +14,8 @@
14 14
15 <Delete Files="$(ArtifactsFolder)WixToolset.VisualStudio.wixext.*.nupkg" /> 15 <Delete Files="$(ArtifactsFolder)WixToolset.VisualStudio.wixext.*.nupkg" />
16 </Target> 16 </Target>
17
18 <Target Name="WixTest">
19 <MSBuild Projects="test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj" Targets="Test" />
20 </Target>
17</Project> 21</Project>
diff --git a/src/ext/ext_t.proj b/src/ext/ext_t.proj
index b51f3425..f9febb2e 100644
--- a/src/ext/ext_t.proj
+++ b/src/ext/ext_t.proj
@@ -7,18 +7,33 @@
7 <ProjectReference Include="Util\util_t.proj" BuildInParallel="false" Targets="Restore;Build" /> 7 <ProjectReference Include="Util\util_t.proj" BuildInParallel="false" Targets="Restore;Build" />
8 <ProjectReference Include="Bal\bal_t.proj" BuildInParallel="false" Targets="Restore;Build" /> 8 <ProjectReference Include="Bal\bal_t.proj" BuildInParallel="false" Targets="Restore;Build" />
9 9
10 <ProjectReference Include="NetFx\netfx_t.proj" BuildInParallel="false" Targets="Restore;Build" /> 10 <ProjectReference Include="Firewall\firewall_t.proj" Targets="Restore;Build" />
11 <ProjectReference Include="UI\ui_t.proj" Targets="Restore;Build" />
11 <ProjectReference Include="ComPlus\complus_t.proj" Targets="Restore;Build" /> 12 <ProjectReference Include="ComPlus\complus_t.proj" Targets="Restore;Build" />
12 <ProjectReference Include="Dependency\dependency_t.proj" Targets="Restore;Build" /> 13 <ProjectReference Include="Dependency\dependency_t.proj" Targets="Restore;Build" />
13 <ProjectReference Include="DirectX\directx_t.proj" Targets="Restore;Build" /> 14 <ProjectReference Include="DirectX\directx_t.proj" Targets="Restore;Build" />
14 <ProjectReference Include="Firewall\firewall_t.proj" Targets="Restore;Build" />
15 <ProjectReference Include="Http\http_t.proj" Targets="Restore;Build" /> 15 <ProjectReference Include="Http\http_t.proj" Targets="Restore;Build" />
16 <ProjectReference Include="Iis\iis_t.proj" Targets="Restore;Build" /> 16 <ProjectReference Include="Iis\iis_t.proj" Targets="Restore;Build" />
17 <ProjectReference Include="Msmq\msmq_t.proj" Targets="Restore;Build" /> 17 <ProjectReference Include="Msmq\msmq_t.proj" Targets="Restore;Build" />
18 <ProjectReference Include="NetFx\netfx_t.proj" Targets="Restore;Build" /> 18 <ProjectReference Include="NetFx\netfx_t.proj" Targets="Restore;Build" />
19 <ProjectReference Include="PowerShell\powershell_t.proj" Targets="Restore;Build" /> 19 <ProjectReference Include="PowerShell\powershell_t.proj" Targets="Restore;Build" />
20 <ProjectReference Include="Sql\sql_t.proj" Targets="Restore;Build" /> 20 <ProjectReference Include="Sql\sql_t.proj" Targets="Restore;Build" />
21 <ProjectReference Include="UI\ui_t.proj" Targets="Restore;Build" />
22 <ProjectReference Include="VisualStudio\visualstudio_t.proj" Targets="Restore;Build" /> 21 <ProjectReference Include="VisualStudio\visualstudio_t.proj" Targets="Restore;Build" />
22
23 <ProjectReference Include="Firewall\firewall_t.proj" Targets="WixTest" />
24 <ProjectReference Include="UI\ui_t.proj" Targets="WixTest" />
25 <ProjectReference Include="Util\util_t.proj" Targets="WixTest" />
26 <ProjectReference Include="Bal\bal_t.proj" Targets="WixTest" />
27 <ProjectReference Include="ComPlus\complus_t.proj" Targets="WixTest" />
28 <ProjectReference Include="Dependency\dependency_t.proj" Targets="WixTest" />
29 <ProjectReference Include="DirectX\directx_t.proj" Targets="WixTest" />
30 <ProjectReference Include="Http\http_t.proj" Targets="WixTest" />
31 <ProjectReference Include="Iis\iis_t.proj" Targets="WixTest" />
32 <ProjectReference Include="Msmq\msmq_t.proj" Targets="WixTest" />
33 <ProjectReference Include="NetFx\netfx_t.proj" Targets="WixTest" />
34 <ProjectReference Include="PowerShell\powershell_t.proj" Targets="WixTest" />
35 <ProjectReference Include="Sql\sql_t.proj" Targets="WixTest" />
36 <ProjectReference Include="VisualStudio\visualstudio_t.proj" Targets="WixTest" />
37
23 </ItemGroup> 38 </ItemGroup>
24</Project> 39</Project>