From 8dcfa9ad9c38b17dfac22aaeb64b02b6bb30b58a Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Wed, 6 Apr 2016 23:56:25 +0200 Subject: [PATCH] accept the cached assembly when the public token of the given assembly is null. This makes Assembly.Load calls with simple assembly names work. Fixes #1199 --- src/app/FakeLib/FSIHelper.fs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/FakeLib/FSIHelper.fs b/src/app/FakeLib/FSIHelper.fs index e8fbe4281af..1b07c84b3ed 100644 --- a/src/app/FakeLib/FSIHelper.fs +++ b/src/app/FakeLib/FSIHelper.fs @@ -259,16 +259,19 @@ let private getCacheInfoFromScript printDetails fsiOptions scriptPath = if printDetails then tracefn "Redirect assembly load to known assembly: %s" ev.Name a | _ -> + let token = name.GetPublicKeyToken() match loadedAssemblies |> Seq.map snd |> Seq.tryFind (fun asem -> let n = asem.GetName() n.Name = name.Name && - n.GetPublicKeyToken() = name.GetPublicKeyToken()) with + (isNull token || // When null accept what we have. + n.GetPublicKeyToken() = token)) with | Some (asem) -> traceFAKE "Redirect assembly from '%s' to '%s'" ev.Name asem.FullName asem | _ -> + if printDetails then traceFAKE "Could not resolve '%s'" ev.Name null)) assemVersionValidCount = Seq.length cacheConfig.Value.Assemblies else