diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index 493a6ba7899..d86ceb3dbb4 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -205,7 +205,7 @@ module Utilities = | None -> "" let arguments prefix = - sprintf "%s -restore %s %c%s%c /t:FSI-PackageManagement" prefix binLoggingArguments '\"' projectPath '\"' + sprintf "%s -restore %s %c%s%c /t:InteractivePackageManagement" prefix binLoggingArguments '\"' projectPath '\"' let workingDir = Path.GetDirectoryName projectPath @@ -230,6 +230,10 @@ namespace lib" $(TARGETFRAMEWORK) false + + + 4.7.0 + 4.7.1-* @@ -273,15 +277,31 @@ $(PACKAGEREFERENCES) - - - Pkg$([System.String]::Copy('%(ResolvedCompileFileDefinitions.NugetPackageId)').Replace('.','_')) - $([MSBuild]::EnsureTrailingSlash('$(%(FsxResolvedFile.PackageRootProperty))')) - $(%(FsxResolvedFile.PackageRootProperty))\content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx - + + + $([System.String]::Copy('%(Identity)').Replace('\', '/')) + $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('\', '/')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) + %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx + $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) + %(ResolvedCompileFileDefinitions.NuGetPackageId) + %(ResolvedCompileFileDefinitions.NuGetPackageVersion) + + + $([System.String]::Copy('%(Identity)').Replace('\', '/')) + $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('\', '/')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) + %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx + $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) + %(RuntimeCopyLocalItems.NuGetPackageId) + %(RuntimeCopyLocalItems.NuGetPackageVersion) + @@ -290,7 +310,7 @@ $(PACKAGEREFERENCES) - + @@ -300,12 +320,18 @@ $(PACKAGEREFERENCES) - + + + + + + + + - - + - + diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs index 3046c3a76f5..9dc326d0edd 100644 --- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs +++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs @@ -190,6 +190,25 @@ printfn ""%A"" result Assert.AreEqual(123, value.ReflectionValue :?> int32) #endif + [] + member __.``ML - use assembly with ref dependencies``() = + let code = @" +#r ""nuget:Microsoft.ML.OnnxTransformer,1.4.0"" + +open System +open System.Numerics.Tensors +let inputValues = [| 12.0; 10.0; 17.0; 5.0 |] +let tInput = new DenseTensor(inputValues.AsMemory(), new ReadOnlySpan([|4|])) +tInput.Length +" + use script = new FSharpScript(additionalArgs=[|"/langversion:preview"|]) + let mutable assemblyRefCount = 0; + Event.add (fun _ -> assemblyRefCount <- assemblyRefCount + 1) script.AssemblyReferenceAdded + let opt = script.Eval(code) |> getValue + let value = opt.Value + Assert.AreEqual(4L, value.ReflectionValue :?> int64) + + [] member __.``Simple pinvoke should not be impacted by native resolver``() = let code = @"