@@ -66,9 +66,9 @@ func (b *bootstrapper) stepSetupDxvk() error {
6666 return nil
6767 }
6868
69- b .message ("Checking DXVK" , "version" , b .cfg .Studio .DXVK )
70-
7169 new := string (b .cfg .Studio .DXVK )
70+ b .message ("Checking DXVK" , "version" , new )
71+
7272 current , err := dxvk .Version (b .pfx )
7373 if err != nil {
7474 return fmt .Errorf ("get version: %w" , err )
@@ -89,7 +89,7 @@ func (b *bootstrapper) stepSetupDxvk() error {
8989 }
9090
9191 if err := netutil .DownloadProgress (
92- dxvk .URL (b . cfg . Studio . DXVK . String () ), name , & b .pbar ); err != nil {
92+ dxvk .URL (new ), name , & b .pbar ); err != nil {
9393 return fmt .Errorf ("download: %w" , err )
9494 }
9595
@@ -118,10 +118,6 @@ func (b *bootstrapper) webviewInstaller() string {
118118 return filepath .Join (dirs .Cache , "webview-" + b .cfg .Studio .WebView + ".exe" )
119119}
120120
121- func (b * bootstrapper ) webviewPath () string {
122- return filepath .Join (b .pfx .Dir (), "drive_c/Program Files (x86)/Microsoft/EdgeWebView/Application" , b .cfg .Studio .WebView )
123- }
124-
125121func (b * bootstrapper ) stepWebviewDownload () error {
126122 name := b .webviewInstaller ()
127123 if name == "" {
@@ -145,18 +141,22 @@ func (b *bootstrapper) stepWebviewDownload() error {
145141}
146142
147143func (b * bootstrapper ) stepWebviewInstall () error {
148- name := b .webviewInstaller ()
149- path := b . webviewPath ( )
144+ new := b .cfg . Studio . WebView
145+ b . message ( "Checking WebView" , "version" , new )
150146
151- _ , err := os .Stat (path )
152- if err == nil && name == "" {
153- b .message ("Uninstalling WebView" )
154-
155- return os .RemoveAll (path )
156- } else if name == "" || (err == nil && name != "" ) {
147+ current := webview2 .Current (b .pfx )
148+ if current != "" && current != b .cfg .Studio .WebView {
149+ b .message ("Uninstalling WebView" , "current" , current , "new" , new )
150+ if err := webview2 .Uninstall (b .pfx , current ); err != nil {
151+ return fmt .Errorf ("uninstall: %w" , err )
152+ }
153+ }
154+ if current == new || new == "" {
157155 return nil
158156 }
159157
158+ name := b .webviewInstaller ()
159+
160160 b .message ("Installing WebView" , "path" , name )
161161 defer b .performing ()()
162162
0 commit comments