From f1c74f3f60a0b1845806a2c6f7082692a8f37b7e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sat, 23 Jul 2022 00:03:58 -0400 Subject: Add files-in-use task dialog. Remove ErrorFailNoActionReboot loc string, now that XP is dead (RIP). Clean up some extra stuff, because I'm all up in the code. Resolves https://github.com/wixtoolset/issues/issues/6545. --- .../WixStdBaBundle/WixStdBaBundle.wixproj | 17 +++++++++++++++++ .../WixStdBaBundle/WixStdBaBundle.wxs | 10 ++++++++++ .../burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs | 20 ++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj create mode 100644 src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wxs (limited to 'src/test') diff --git a/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj new file mode 100644 index 00000000..e0860665 --- /dev/null +++ b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wixproj @@ -0,0 +1,17 @@ + + + + Bundle + {6A348108-8ACE-4D13-A352-D8F76785BFE4} + $(DefineConstants);BaseOutputPath=$(BaseOutputPath);Version=1.1 + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wxs b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wxs new file mode 100644 index 00000000..bd164a29 --- /dev/null +++ b/src/test/burn/TestData/FilesInUseTests/WixStdBaBundle/WixStdBaBundle.wxs @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs index 042175f0..12eca77d 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs @@ -33,5 +33,25 @@ namespace WixToolsetTest.BurnE2E packageA.VerifyInstalled(false); } + + [RuntimeFact] + public void WixStdBAFailsWithLockedFile() + { + var packageA = this.CreatePackageInstaller("PackageA"); + var bundleA = this.CreateBundleInstaller("WixStdBaBundle"); + + packageA.VerifyInstalled(false); + + bundleA.Install(); + + packageA.VerifyInstalled(true); + + // Lock the file that will be uninstalled. + var targetInstallFile = packageA.GetInstalledFilePath("Package.wxs"); + using (var lockTargetFile = new FileStream(targetInstallFile, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) + { + bundleA.Uninstall(expectedExitCode: (int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_FAILURE); + } + } } } -- cgit v1.2.3-55-g6feb