1- import { Arch , CopyFileTransformer , executeAppBuilder , FileTransformer , InvalidConfigurationError , log , use , walk } from "builder-util"
1+ import { Arch , CopyFileTransformer , executeAppBuilder , exists , FileTransformer , InvalidConfigurationError , log , use , walk } from "builder-util"
22import { Nullish } from "builder-util-runtime"
3+ import { isCI } from "ci-info"
34import { createHash } from "crypto"
45import { readdir } from "fs/promises"
5- import { isCI } from "ci-info"
66import { Lazy } from "lazy-val"
77import * as path from "path"
8+ import { readAsarHeader } from "./asar/asar"
89import { SignManager } from "./codeSign/signManager"
910import { signWindows , WindowsSignOptions } from "./codeSign/windowsCodeSign"
1011import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager"
@@ -21,12 +22,12 @@ import { NsisTarget } from "./targets/nsis/NsisTarget"
2122import { AppPackageHelper , CopyElevateHelper } from "./targets/nsis/nsisUtil"
2223import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget"
2324import { createCommonTarget } from "./targets/targetFactory"
25+ import { getRceditBundle } from "./toolsets/windows"
2426import { BuildCacheManager , digest } from "./util/cacheManager"
2527import { isBuildCacheEnabled } from "./util/flags"
2628import { time } from "./util/timer"
2729import { getWindowsVm , VmManager } from "./vm/vm"
2830import { execWine } from "./wine"
29- import { getRceditBundle } from "./toolsets/windows"
3031
3132export class WinPackager extends PlatformPackager < WindowsConfiguration > {
3233 _iconPath = new Lazy ( ( ) => this . getOrConvertIcon ( "ico" ) )
@@ -203,6 +204,13 @@ export class WinPackager extends PlatformPackager<WindowsConfiguration> {
203204 hash . update ( this . platformSpecificBuildOptions . signtoolOptions ?. certificateSha1 || "no certificateSha1" )
204205 hash . update ( this . platformSpecificBuildOptions . signtoolOptions ?. certificateSubjectName || "no subjectName" )
205206
207+ const asar = path . resolve ( this . getResourcesDir ( outDir ) , "app.asar" )
208+ if ( await exists ( asar ) ) {
209+ hash . update ( ( await readAsarHeader ( asar ) ) . header )
210+ } else {
211+ hash . update ( "no asar" )
212+ }
213+
206214 buildCacheManager = new BuildCacheManager ( outDir , file , arch )
207215 if ( await buildCacheManager . copyIfValid ( await digest ( hash , files ) ) ) {
208216 timer . end ( )
0 commit comments