diff --git a/src/SwaggerProvider.DesignTime/Provider.OpenApiClient.fs b/src/SwaggerProvider.DesignTime/Provider.OpenApiClient.fs index c0f93cd..008761d 100644 --- a/src/SwaggerProvider.DesignTime/Provider.OpenApiClient.fs +++ b/src/SwaggerProvider.DesignTime/Provider.OpenApiClient.fs @@ -59,8 +59,19 @@ type public OpenApiClientTypeProvider(cfg: TypeProviderConfig) as this = let preferAsync = unbox args.[4] let ssrfProtection = unbox args.[5] + // Cache key includes cfg.RuntimeAssembly, cfg.ResolutionFolder, and cfg.SystemRuntimeAssemblyVersion + // to differentiate between different TFM builds (same approach as FSharp.Data) + // See: https://github.com/fsprojects/FSharp.Data/blob/main/src/FSharp.Data.DesignTime/CommonProviderImplementation/Helpers.fs let cacheKey = - (schemaPathRaw, ignoreOperationId, ignoreControllerPrefix, preferNullable, preferAsync, ssrfProtection) + (schemaPathRaw, + ignoreOperationId, + ignoreControllerPrefix, + preferNullable, + preferAsync, + ssrfProtection, + cfg.RuntimeAssembly, + cfg.ResolutionFolder, + cfg.SystemRuntimeAssemblyVersion) |> sprintf "%A" let addCache() = diff --git a/src/SwaggerProvider.DesignTime/Provider.SwaggerClient.fs b/src/SwaggerProvider.DesignTime/Provider.SwaggerClient.fs index 0102e01..b7940b5 100644 --- a/src/SwaggerProvider.DesignTime/Provider.SwaggerClient.fs +++ b/src/SwaggerProvider.DesignTime/Provider.SwaggerClient.fs @@ -62,8 +62,20 @@ type public SwaggerTypeProvider(cfg: TypeProviderConfig) as this = let preferAsync = unbox args.[5] let ssrfProtection = unbox args.[6] + // Cache key includes cfg.RuntimeAssembly, cfg.ResolutionFolder, and cfg.SystemRuntimeAssemblyVersion + // to differentiate between different TFM builds (same approach as FSharp.Data) + // See: https://github.com/fsprojects/FSharp.Data/blob/main/src/FSharp.Data.DesignTime/CommonProviderImplementation/Helpers.fs let cacheKey = - (schemaPathRaw, headersStr, ignoreOperationId, ignoreControllerPrefix, preferNullable, preferAsync, ssrfProtection) + (schemaPathRaw, + headersStr, + ignoreOperationId, + ignoreControllerPrefix, + preferNullable, + preferAsync, + ssrfProtection, + cfg.RuntimeAssembly, + cfg.ResolutionFolder, + cfg.SystemRuntimeAssemblyVersion) |> sprintf "%A" let addCache() =