New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
util:DirectorySearch for Systems32 folder fails in Bundle #5476
Comments
Search is getting syswow64. Needs to disable fs redirection. |
Is there a reason why this doesn't work with a fixed full path? Or [WindowsFolder]System32, for that matter, which doesn't get syswow64 back? |
I just watched the latest triage. Like I said, it's not the problem of getting the 32 bit one. Because when I used the [SystemFolder] I tried to set a Variable and it was system32 in the log. Not SysWOW64. As for the RegistrySearch, I tried that but MS hasn't dealt with the registry properly. There are two ways to install the Runtime for Kinect applications. The standalone runtime and the one given by the SDK. It should be the same but it's really not and they've messed up with the registry keys and they are not deleting the keys properly on uninstall nor do they add an Installed value in both cases(that would be ideal), so yeah it's quite sad as someone mentioned. The only way I found to accurately detect both cases, is to see whether that folder exists, since its the service we need running on the host machine in order to use Kinect. They also take care to remove that folder in both installers, so it's the only reliable way to detect existence. And I'm not really worried about x86 machines, since the application is only x64. Therefore the directory as fixed as it seems, is actually exactly what I need. I'd prefer it if they'd fixed the registry part, since I already use the regsearch for a different Kinect tool by MS, but what can I do ?! And like I said, I tried various ways. One stackoverflow answer suggested the [WindowsFolder]System32 which should be easier to get, but even that failed silently and never set the KinectRuntimeExistence variable to 1. UPDATE: <Variable Name="KRDir" Value="[SystemFolder]Kinect"/>
<Variable Name="KRDirEx" Value="0"/>
<util:DirectorySearch Id="KinectRuntimeDirSearch"
Path="[KRDir]"
Result="exists"
Variable="KinectRuntimeExistence"
Condition="VersionNT64"
/>
<Variable Name="KRFile" Value="[SystemFolder]Kinect\KinectMonitor.exe"/>
<Variable Name="KRFileEx" Value="0"/>
<util:FileSearch Id="KinectRuntimeFileSearch"
Path="[KRFile]"
Result="exists"
Variable="KRFileEx"
Condition="VersionNT64"
/> And the output log was: [1B98:225C][2017-01-19T11:01:27]i001: Burn v3.10.2.2516, Windows v10.0 (Build 10586: Service Pack 0), path: C:\Users\<some user>\AppData\Local\Temp\{69D34974-B51F-49AA-98E7-9DC9F0F2A0B9}\.cr\Bootstrapper.exe
[1B98:225C][2017-01-19T11:01:27]i000: Initializing string variable 'DELETECONFIGFILES' to value ''
[1B98:225C][2017-01-19T11:01:27]i000: Initializing string variable 'INSTALLATIONTOKENEDIT' to value ''
[1B98:225C][2017-01-19T11:01:27]i000: Initializing string variable 'KRDir' to value '[SystemFolder]Kinect'
[1B98:225C][2017-01-19T11:01:27]i000: Initializing numeric variable 'KRDirEx' to value '0'
[1B98:225C][2017-01-19T11:01:27]i000: Initializing string variable 'KRFile' to value '[SystemFolder]Kinect\KinectMonitor.exe'
[1B98:225C][2017-01-19T11:01:27]i000: Initializing numeric variable 'KRFileEx' to value '0'
[1B98:225C][2017-01-19T11:01:27]i009: Command Line: '-burn.clean.room=C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe -l log.txt'
[1B98:225C][2017-01-19T11:01:27]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe'
[1B98:225C][2017-01-19T11:01:27]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\'
[1B98:225C][2017-01-19T11:01:28]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log.txt'
[1B98:225C][2017-01-19T11:01:28]i000: Setting string variable 'WixBundleName' to value '<some project>'
[1B98:225C][2017-01-19T11:01:28]i000: Setting string variable 'WixBundleManufacturer' to value '1.0.0.0'
[1B98:20F8][2017-01-19T11:01:28]i000: Setting numeric variable 'WixStdBALanguageId' to value 1033
[1B98:20F8][2017-01-19T11:01:28]i000: Setting version variable 'WixBundleFileVersion' to value '1.0.0.0'
[1B98:225C][2017-01-19T11:01:28]i100: Detect begin, 2 packages
[1B98:225C][2017-01-19T11:01:28]i052: Condition 'VersionNT64' evaluates to true.
[1B98:225C][2017-01-19T11:01:28]i000: Setting numeric variable 'KinectRuntimeExistence' to value 0
[1B98:225C][2017-01-19T11:01:28]i052: Condition 'VersionNT64' evaluates to true.
[1B98:225C][2017-01-19T11:01:28]i000: File search: KinectRuntimeFileSearch, did not find path: C:\Windows\system32\Kinect\KinectMonitor.exe
[1B98:225C][2017-01-19T11:01:28]i000: Setting numeric variable 'KRFileEx' to value 0
[1B98:225C][2017-01-19T11:01:28]i000: Setting numeric variable 'KinectVerifierExistence' to value 1
[1B98:225C][2017-01-19T11:01:28]i052: Condition 'KinectRuntimeExistence = 1 OR KRFileEx = 1' evaluates to false.
[1B98:225C][2017-01-19T11:01:28]i052: Condition 'KinectVerifierExistence = 1' evaluates to true.
[1B98:225C][2017-01-19T11:01:28]i101: Detected package: KinectRuntime, state: Absent, cached: None
[1B98:225C][2017-01-19T11:01:28]i101: Detected package: KinectConfigurationVerifier, state: Present, cached: Complete
[1B98:225C][2017-01-19T11:01:28]i199: Detect complete, result: 0x0
[1B98:20F8][2017-01-19T11:01:30]i000: Setting string variable 'INSTALLATIONTOKENEDIT' to value ''
[1B98:20F8][2017-01-19T11:01:30]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 1
[1B98:225C][2017-01-19T11:01:30]i200: Plan begin, 2 packages, action: Install
[1B98:225C][2017-01-19T11:01:30]i052: Condition 'VersionNT64 AND KinectRuntimeExistence = 0 AND KRFileEx = 0' evaluates to true.
[1B98:225C][2017-01-19T11:01:30]w321: Skipping dependency registration on package with no dependency providers: KinectRuntime
[1B98:225C][2017-01-19T11:01:30]i000: Setting string variable 'WixBundleLog_KinectRuntime' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log_000_KinectRuntime.txt'
[1B98:225C][2017-01-19T11:01:30]i052: Condition 'VersionNT64 AND KinectVerifierExistence = 0' evaluates to false.
[1B98:225C][2017-01-19T11:01:30]w321: Skipping dependency registration on package with no dependency providers: KinectConfigurationVerifier
[1B98:225C][2017-01-19T11:01:30]i201: Planned package: KinectRuntime, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: No, dependency: None
[1B98:225C][2017-01-19T11:01:30]i201: Planned package: KinectConfigurationVerifier, state: Present, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[1B98:225C][2017-01-19T11:01:30]i299: Plan complete, result: 0x0
[1B98:225C][2017-01-19T11:01:30]i300: Apply begin
[1B98:225C][2017-01-19T11:01:30]i010: Launching elevated engine process.
[1B98:225C][2017-01-19T11:01:31]i011: Launched elevated engine process.
[1B98:225C][2017-01-19T11:01:32]i012: Connected to elevated engine.
[2690:1494][2017-01-19T11:01:32]i358: Pausing automatic updates.
[2690:1494][2017-01-19T11:01:32]i359: Paused automatic updates.
[2690:1494][2017-01-19T11:01:32]i360: Creating a system restore point.
[2690:1494][2017-01-19T11:01:32]i361: Created a system restore point.
[2690:1494][2017-01-19T11:01:32]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{60b11d4c-a151-4518-956a-34bb656c21cd}, options: 0x7, disable resume: No
[2690:1494][2017-01-19T11:01:32]i000: Caching bundle from: 'C:\Users\<some user>\AppData\Local\Temp\{63724CD0-2213-43E0-8FCE-C872076213EC}\.be\Bootstrapper.exe' to: 'C:\ProgramData\Package Cache\{60b11d4c-a151-4518-956a-34bb656c21cd}\Bootstrapper.exe'
[2690:1494][2017-01-19T11:01:32]i320: Registering bundle dependency provider: {60b11d4c-a151-4518-956a-34bb656c21cd}, version: 1.0.0.0
[2690:1494][2017-01-19T11:01:32]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{60b11d4c-a151-4518-956a-34bb656c21cd}, resume: Active, restart initiated: No, disable resume: No
[1B98:2554][2017-01-19T11:01:32]i336: Acquiring container: WixAttachedContainer, copy from: C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1B98:2554][2017-01-19T11:01:32]i000: Setting string variable 'WixBundleLastUsedSource' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\'
[2690:282C][2017-01-19T11:01:33]i305: Verified acquired payload: KinectRuntime at path: C:\ProgramData\Package Cache\.unverified\KinectRuntime, moving to: C:\ProgramData\Package Cache\0F836C63E8C600B3989345EF637C8565B6F2D15C\KinectRuntime-v2.0_1409-Setup.exe.
[2690:1494][2017-01-19T11:01:33]i301: Applying execute package: KinectRuntime, action: Install, path: C:\ProgramData\Package Cache\0F836C63E8C600B3989345EF637C8565B6F2D15C\KinectRuntime-v2.0_1409-Setup.exe, arguments: '"C:\ProgramData\Package Cache\0F836C63E8C600B3989345EF637C8565B6F2D15C\KinectRuntime-v2.0_1409-Setup.exe"'
[1B98:225C][2017-01-19T11:01:37]i319: Applied execute package: KinectRuntime, result: 0x0, restart: None
[2690:1494][2017-01-19T11:01:37]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{60b11d4c-a151-4518-956a-34bb656c21cd}, resume: ARP, restart: None, disable resume: No
[2690:1494][2017-01-19T11:01:37]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{60b11d4c-a151-4518-956a-34bb656c21cd}, resume: ARP, restart initiated: No, disable resume: No
[1B98:225C][2017-01-19T11:01:37]i399: Apply complete, result: 0x0, restart: None, ba requested restart: No
[1B98:225C][2017-01-19T11:01:38]i500: Shutting down, exit code: 0x0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: DELETECONFIGFILES =
[1B98:225C][2017-01-19T11:01:38]i410: Variable: EulaAcceptCheckbox = 1
[1B98:225C][2017-01-19T11:01:38]i410: Variable: INSTALLATIONTOKENEDIT =
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KinectRuntimeExistence = 0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KinectVerifierExistence = 1
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KRDir = C:\Windows\system32\Kinect
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KRDirEx = 0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KRFile = C:\Windows\system32\Kinect\KinectMonitor.exe
[1B98:225C][2017-01-19T11:01:38]i410: Variable: KRFileEx = 0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: SystemFolder = C:\Windows\system32\
[1B98:225C][2017-01-19T11:01:38]i410: Variable: VersionNT64 = 10.0.0.0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleAction = 5
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleElevated = 1
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleFileVersion = 1.0.0.0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleInstalled = 0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleLastUsedSource = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleLog = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log.txt
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleLog_KinectRuntime = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log_000_KinectRuntime.txt
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleManufacturer = <some publisher>
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleName = <Some project>
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleOriginalSource = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleOriginalSourceFolder = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleProviderKey = {60b11d4c-a151-4518-956a-34bb656c21cd}
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleSourceProcessFolder = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleSourceProcessPath = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleTag =
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixBundleVersion = 1.0.0.0
[1B98:225C][2017-01-19T11:01:38]i410: Variable: WixStdBALanguageId = 1033
[1B98:225C][2017-01-19T11:01:38]i007: Exit code: 0x0, restarting: No |
File system redirection turns System32 into SysWOW64 for 32-bit apps. |
To which app are you referring by 32bit apps? Burn? |
Bundles are 32-bit. Redirection happens at the OS level unless prevented. |
I see. Thanks. |
I just installed v3.11.0.1.1701(Release Notes said you fixed the redirection issue with the SystemFolder) and tried the DirectorySearch again using :
and checking the log there's no line indicating the DirectorySearch got executed at all.
the log says: If I copy paste the path(even with the lowercase system32, File Explorer goes to the directory I'm searching for. Any ideas? |
This bug is still open so nobody's fixed it yet. Not sure which release notes mention fixing redirection. |
It's attributed to a different bug but I thought it was the same since it involved the SystemFolder and x64. https://github.com/wixtoolset/wix3/releases/tag/wix311rtm
Unless I've misunderstood. |
Different issue. |
Any updates on this? I'm also experiencing the same issue: [System64Folder] always evaluates to sysWOW64 on a 64-bit machine in my WixExtendedBootstrapperApplication bundle. |
This issue is open and unassigned. That means it is waiting for someone to investigate the root problem, discuss possible solutions to that problem then implement the decided solution. If you are interested in doing so yourself, our developer documentation provides a great checklist for getting started. If you are not interested then you are waiting for someone else to become interested. If this issue has been open for a long time then there probably isn't much interest in this particular issue. In that case, you'll want to consider how to motivate others to fix it for you. This is a pretty good list of support options. |
Which version of WiX are you building with?
v3.10.2.2516
Which version of Visual Studio are you building with (if any)?
v14.0.25431.01 Update 3
Which version of .NET are you building with?
v4.6.01038
If the problem occurs when installing your packages built with WiX, what is the version of Windows the package is running on?
Edition:Windows 10 Enterprise 64bit
Version:1511
OS Build:10586.753
Describe the problem and the steps to reproduce it.
Using a regular Bundle Chain where there is a PackageGroup for Kinectv2 Runtime. Seeing as the Runtime does not manage registry correctly, I had to use util:DirectorySearch and use it as a DetectCondition and InstallCondition on the runtime setup executable.
Having installed the Kinect v2 Runtime, I know there is a directory to look for as a condition for running the chained setup.
I've tried using Path="[WindowsFolder]System32\Kinect", Path="[SystemFolder]Kinect" and Path="C:\Windows\System32\Kinect" but none of them worked.
Note: System32 is written with a capital S and I noticed that if I tried using [SystemFolder] I got system32. Not sure if directory search is case-insensitive, or filesearch for that matter.
Here is the code of the package group:
I expected the DirectorySearch to set the variable KinectRuntimeExistence to 1 but instead it's always 0.
If I get the same path and use it on windows explorer, it goes into the folder in the image.
Also when I tried to use a FileSearch for KinectService.exe(which you can see from the image above, exists) I got a file not found in the exe logging.
Here's the boostrapper's exe log during install:
The text was updated successfully, but these errors were encountered: