Skip to content
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

Closed
NPatch opened this issue Jan 17, 2017 · 13 comments · Fixed by wixtoolset/wix#164
Closed

util:DirectorySearch for Systems32 folder fails in Bundle #5476

NPatch opened this issue Jan 17, 2017 · 13 comments · Fixed by wixtoolset/wix#164

Comments

@NPatch
Copy link

NPatch commented Jan 17, 2017

  • 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.
    Directory proof

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:

 <util:DirectorySearch Id="KinectRuntimeDirSearch"
                           Path="[WindowsFolder]System32\Kinect"
                           Result="exists"
                           Variable="KinectRuntimeExistence" 
                           Condition="VersionNT64"
    />   
    <PackageGroup Id="KinectRuntime">
      <ExePackage
              Id ="KinectRuntime"
              SourceFile="$(var.SolutionDir)Build\Prerequisites\KinectRuntime-v2.0_1409-Setup.exe"
              DetectCondition="KinectRuntimeExistence = 1"
              InstallCondition="VersionNT64 AND KinectRuntimeExistence = 0 "
              DownloadUrl="https://www.microsoft.com/en-us/download/confirmation.aspx?id=44559"
              Compressed="yes"
              Permanent ="yes"
      />
    </PackageGroup>
  • Describe the behavior you expected and how it differed from the actual behavior.
    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:

[1DA4:1ED4][2017-01-17T16:57:56]i001: Burn v3.10.2.2516, Windows v10.0 (Build 10586: Service Pack 0), path: C:\Users\<some user>\AppData\Local\Temp\{F688A143-58DA-4F2E-9153-F4372756304C}\.cr\Bootstrapper.exe
[1DA4:1ED4][2017-01-17T16:57:56]i000: Initializing string variable 'DELETECONFIGFILES' to value ''
[1DA4:1ED4][2017-01-17T16:57:56]i000: Initializing string variable 'INSTALLATIONTOKENEDIT' to value ''
[1DA4:1ED4][2017-01-17T16:57:56]i009: Command Line: '-burn.clean.room=C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe -l log.txt'
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe'
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\'
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log.txt'
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting string variable 'WixBundleName' to value '<some project>'
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting string variable 'WixBundleManufacturer' to value '1.0.0.0'
[1DA4:13C8][2017-01-17T16:57:56]i000: Setting numeric variable 'WixStdBALanguageId' to value 1033
[1DA4:13C8][2017-01-17T16:57:56]i000: Setting version variable 'WixBundleFileVersion' to value '1.0.0.0'
[1DA4:1ED4][2017-01-17T16:57:56]i100: Detect begin, 2 packages
[1DA4:1ED4][2017-01-17T16:57:56]i052: Condition 'VersionNT64' evaluates to true.
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting numeric variable 'KinectRuntimeExistence' to value 0
[1DA4:1ED4][2017-01-17T16:57:56]i000: Setting numeric variable 'KinectVerifierExistence' to value 1
[1DA4:1ED4][2017-01-17T16:57:56]i052: Condition 'KinectRuntimeExistence = 1' evaluates to false.
[1DA4:1ED4][2017-01-17T16:57:56]i052: Condition 'KinectVerifierExistence = 1' evaluates to true.
[1DA4:1ED4][2017-01-17T16:57:56]i101: Detected package: KinectRuntime, state: Absent, cached: None
[1DA4:1ED4][2017-01-17T16:57:56]i101: Detected package: KinectConfigurationVerifier, state: Present, cached: Complete
[1DA4:1ED4][2017-01-17T16:57:56]i199: Detect complete, result: 0x0
[1DA4:13C8][2017-01-17T16:57:58]i000: Setting string variable 'INSTALLATIONTOKENEDIT' to value ''
[1DA4:13C8][2017-01-17T16:57:58]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 1
[1DA4:1ED4][2017-01-17T16:57:58]i200: Plan begin, 2 packages, action: Install
[1DA4:1ED4][2017-01-17T16:57:58]i052: Condition 'VersionNT64 AND KinectRuntimeExistence = 0 ' evaluates to true.
[1DA4:1ED4][2017-01-17T16:57:58]w321: Skipping dependency registration on package with no dependency providers: KinectRuntime
[1DA4:1ED4][2017-01-17T16:57:58]i000: Setting string variable 'WixBundleLog_KinectRuntime' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log_000_KinectRuntime.txt'
[1DA4:1ED4][2017-01-17T16:57:58]i052: Condition 'VersionNT64 AND KinectVerifierExistence = 0' evaluates to false.
[1DA4:1ED4][2017-01-17T16:57:58]w321: Skipping dependency registration on package with no dependency providers: KinectConfigurationVerifier
[1DA4:1ED4][2017-01-17T16:57:58]i201: Planned package: KinectRuntime, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: No, dependency: None
[1DA4:1ED4][2017-01-17T16:57:58]i201: Planned package: KinectConfigurationVerifier, state: Present, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[1DA4:1ED4][2017-01-17T16:57:58]i299: Plan complete, result: 0x0
[1DA4:1ED4][2017-01-17T16:57:58]i300: Apply begin
[1DA4:1ED4][2017-01-17T16:57:58]i010: Launching elevated engine process.
[1DA4:1ED4][2017-01-17T16:57:59]i011: Launched elevated engine process.
[1DA4:1ED4][2017-01-17T16:57:59]i012: Connected to elevated engine.
[0438:2594][2017-01-17T16:57:59]i358: Pausing automatic updates.
[0438:2594][2017-01-17T16:57:59]i359: Paused automatic updates.
[0438:2594][2017-01-17T16:57:59]i360: Creating a system restore point.
[0438:2594][2017-01-17T16:57:59]i361: Created a system restore point.
[0438:2594][2017-01-17T16:57:59]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{31263e19-f9d3-44c5-84ef-94bc3ea16b29}, options: 0x7, disable resume: No
[0438:2594][2017-01-17T16:58:00]i000: Caching bundle from: 'C:\Users\<some user>\AppData\Local\Temp\{39AF3447-225C-4C4F-81F8-516BA69C3346}\.be\Bootstrapper.exe' to: 'C:\ProgramData\Package Cache\{31263e19-f9d3-44c5-84ef-94bc3ea16b29}\Bootstrapper.exe'
[0438:2594][2017-01-17T16:58:00]i320: Registering bundle dependency provider: {31263e19-f9d3-44c5-84ef-94bc3ea16b29}, version: 1.0.0.0
[0438:2594][2017-01-17T16:58:00]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{31263e19-f9d3-44c5-84ef-94bc3ea16b29}, resume: Active, restart initiated: No, disable resume: No
[1DA4:176C][2017-01-17T16:58:00]i336: Acquiring container: WixAttachedContainer, copy from: C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1DA4:176C][2017-01-17T16:58:00]i000: Setting string variable 'WixBundleLastUsedSource' to value 'C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\'
[0438:2818][2017-01-17T16:58:00]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.
[0438:2594][2017-01-17T16:58:00]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"'
[1DA4:1ED4][2017-01-17T16:58:05]i319: Applied execute package: KinectRuntime, result: 0x0, restart: None
[0438:2594][2017-01-17T16:58:05]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{31263e19-f9d3-44c5-84ef-94bc3ea16b29}, resume: ARP, restart: None, disable resume: No
[0438:2594][2017-01-17T16:58:05]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{31263e19-f9d3-44c5-84ef-94bc3ea16b29}, resume: ARP, restart initiated: No, disable resume: No
[1DA4:1ED4][2017-01-17T16:58:05]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No
[1DA4:1ED4][2017-01-17T16:58:06]i500: Shutting down, exit code: 0x0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: DELETECONFIGFILES = 
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: EulaAcceptCheckbox = 1
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: INSTALLATIONTOKENEDIT = 
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: KinectRuntimeExistence = 0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: KinectVerifierExistence = 1
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: VersionNT64 = 10.0.0.0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WindowsFolder = C:\Windows\
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleAction = 5
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleElevated = 1
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleFileVersion = 1.0.0.0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleInstalled = 0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleLastUsedSource = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleLog = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log.txt
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleLog_KinectRuntime = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\log_000_KinectRuntime.txt
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleManufacturer = 1.0.0.0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleName = Fitting Room 2
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleOriginalSource = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleOriginalSourceFolder = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleProviderKey = {31263e19-f9d3-44c5-84ef-94bc3ea16b29}
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleSourceProcessFolder = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleSourceProcessPath = C:\Users\<some user>\Documents\<Publisher>\GitLab\<ProjectName>\Build\FinalOutput\Bootstrapper.exe
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleTag = 
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixBundleVersion = 1.0.0.0
[1DA4:1ED4][2017-01-17T16:58:06]i410: Variable: WixStdBALanguageId = 1033
[1DA4:1ED4][2017-01-17T16:58:06]i007: Exit code: 0x0, restarting: No
@barnson barnson added this to the v3.x milestone Jan 18, 2017
@barnson
Copy link
Member

barnson commented Jan 18, 2017

Search is getting syswow64. Needs to disable fs redirection.

@NPatch
Copy link
Author

NPatch commented Jan 18, 2017

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?

@NPatch
Copy link
Author

NPatch commented Jan 19, 2017

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:
Added both a directory search and a file search with some variables to show the path evaluation at opportune times.
Here is the code for it:

<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

@barnson
Copy link
Member

barnson commented Jan 19, 2017

File system redirection turns System32 into SysWOW64 for 32-bit apps.

@NPatch
Copy link
Author

NPatch commented Jan 19, 2017

To which app are you referring by 32bit apps? Burn?
Does DirectorySearch perform a redirection even when given a static path( [WindowsFolder]System32 ) or is it just for the burn variables( [SystemFolder] )?

@barnson
Copy link
Member

barnson commented Jan 19, 2017

Bundles are 32-bit. Redirection happens at the OS level unless prevented.

@NPatch
Copy link
Author

NPatch commented Jan 19, 2017

I see. Thanks.

@NPatch
Copy link
Author

NPatch commented Jun 2, 2017

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 :

<Variable Name="KRDir" Value="[System64Folder]Kinect"/>
    <util:DirectorySearch Id="KinectRuntimeDirSearch"
                           Path="[KRDir]"
                           Result="exists"
                           Variable="KinectRuntimeExistence" 
                           Condition="VersionNT64"
    />

and checking the log there's no line indicating the DirectorySearch got executed at all.
And if I do this instead :

<Variable Name="KRFile" Value="[System64Folder]Kinect\KinectMonitor.exe"/>

    <util:FileSearch Id="KinectRuntimeFileSearch"
                           Path="[KRFile]"
                           Result="exists"
                           Variable="KinectRuntimeExistence"
                           Condition="VersionNT64"
    />

the log says:
File search: KinectRuntimeFileSearch, did not find path: C:\WINDOWS\system32\Kinect\KinectMonitor.exe

If I copy paste the path(even with the lowercase system32, File Explorer goes to the directory I'm searching for.

Any ideas?

@barnson
Copy link
Member

barnson commented Jun 2, 2017

This bug is still open so nobody's fixed it yet. Not sure which release notes mention fixing redirection.

@NPatch
Copy link
Author

NPatch commented Jun 2, 2017

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
Under Burn and WixStandardBootstrapperApplication

  • robmen fixed bug 5307 by correctly setting SystemFolder and System64Folder Burn variables.

Unless I've misunderstood.

@barnson
Copy link
Member

barnson commented Jun 2, 2017

Different issue.

@nickdademo
Copy link

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.

@robmen
Copy link
Member

robmen commented Aug 5, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

5 participants