@@ -88,16 +88,38 @@ public string InstallerEula
8888 }
8989 }
9090
91- public Task < bool > Install ( IProgress < InstallationProgress > progress , CancellationToken cancellationToken )
91+ public async Task < bool > Install ( IProgress < InstallationProgress > progress , CancellationToken cancellationToken )
9292 {
9393 // Amethyst will handle this exception for us anyway
9494 cancellationToken . ThrowIfCancellationRequested ( ) ;
95-
96- return Task . FromResult ( InstallFiles ( new [ ]
95+ var paths = new [ ]
9796 {
9897 Path . Join ( Directory . GetParent ( Assembly . GetExecutingAssembly ( ) . Location ) ! . FullName ,
9998 "Assets" , "Resources" , "Dependencies" , "KinectRuntime-x64.msi" )
100- } , progress , cancellationToken ) ) ;
99+ } ;
100+
101+ // Copy to temp if amethyst is packaged
102+ // ReSharper disable once InvertIf
103+ if ( PackageUtils . IsAmethystPackaged )
104+ {
105+ // Create a shared folder with the dependencies
106+ var dependenciesFolder = await ApplicationData . Current . TemporaryFolder . CreateFolderAsync (
107+ Guid . NewGuid ( ) . ToString ( ) . ToUpper ( ) , CreationCollisionOption . OpenIfExists ) ;
108+
109+ // Copy all driver files to Amethyst's local data folder
110+ new DirectoryInfo ( Path . Join ( Directory . GetParent ( Assembly . GetExecutingAssembly ( ) . Location ) ! . FullName ,
111+ "Assets" , "Resources" , "Dependencies" ) )
112+ . CopyToFolder ( dependenciesFolder . Path ) ;
113+
114+ // Update the installation paths
115+ paths = new [ ]
116+ {
117+ Path . Join ( dependenciesFolder . Path , "KinectRuntime-x64.msi" )
118+ } ;
119+ }
120+
121+ // Finally install the packages
122+ return InstallFiles ( paths , progress , cancellationToken ) ;
101123 }
102124
103125 private bool InstallFiles ( IEnumerable < string > files ,
0 commit comments