Replies: 23 comments 6 replies
-
Not sure if it's related, but why is it using |
Beta Was this translation helpful? Give feedback.
-
that's just the bootstrapping part - you need to get the fake dotnet tool from somewhere, and using a dummy csproj is the easiest way to aquire it. |
Beta Was this translation helpful? Give feedback.
-
Btw this was reported to fake as well: fsprojects/FAKE#1938 Question is:
I don't think it is in fact an IDE problem. But I'm thankful on any information about this, especially how you are supposed to properly reference netstandard as |
Beta Was this translation helpful? Give feedback.
-
Also don't get confused by the fact that fake can run the script. This is because we load all assemblies "by hand" and therefore all |
Beta Was this translation helpful? Give feedback.
-
I don't think so. I had to wrap it in !FAKE, because unconditional reference would make it succeed in the idea, but fail at runtime. I can try more things later, currently on mobile |
Beta Was this translation helpful? Give feedback.
-
Or to be more exact: I have no idea. Question is are you supposed to reference @cartermp can you try to figure out an answer to that? How can we see |
Beta Was this translation helpful? Give feedback.
-
What if you use Since FSI has no concept of .NET Standard today, it wouldn't surprise me that you'd need to hand-reference everything it yourself. And there's no built-in editor support for understanding it for, e.g., a .fsx file sitting at the solution level. So it wouldn't surprise me that you need to reference the |
Beta Was this translation helpful? Give feedback.
-
@cartermp Yes sadly if it would be a "proper" package it would already work ootb just fine, but for some reason they don't use regular nuget references for this particular package. In fact they use msbuild trickery: This strongly suggests that everyone in the ecosystem needs to "special case" that reference (including tooling!). Therefore it would be neither a paket nor a fake bug (imho). |
Beta Was this translation helpful? Give feedback.
-
What I think that this implies is that msbuild is the source of truth for interactive tooling that needs to understand this reference. Which puts the ball in our court for the FSI work. The spec isn't written beyond a quick push of a summary so I don't lose my work. Details of what goes into each involves, among other things, ripping out direct dependencies on older MSBuild versions throughout the codebase. It's fuuuuunnnnn 🙄 |
Beta Was this translation helpful? Give feedback.
-
@cartermp Just to be on the same page: This issue has nothing to do with fsi on netcore. In fact this hit regular tooling on full framework scripts. Fake basically writes a script (via Do you think it is a good idea if we workaround this by referencing |
Beta Was this translation helpful? Give feedback.
-
What I mentioned also affects desktop FSI - there is no understanding of .NET Standard and it needs to be built. I think that |
Beta Was this translation helpful? Give feedback.
-
I thought about adding this to paket load script generation feature (as that is where this issue is basically rooted). But I guess this But I'll probably do some testing before changing anything |
Beta Was this translation helpful? Give feedback.
-
Please note that even adding netstandard.dll doesn't fix everything @cartermp |
Beta Was this translation helpful? Give feedback.
-
I wouldn't expect it to. This is workaround territory until we complete the FSI work. |
Beta Was this translation helpful? Give feedback.
-
I fixed the remaining design-time issues by:
The issue was that the I don't think that version of |
Beta Was this translation helpful? Give feedback.
-
If it's not already part of it I'm probably not doing that |
Beta Was this translation helpful? Give feedback.
-
Probably adding a directive specifying target framework id would help. |
Beta Was this translation helpful? Give feedback.
-
What's the solution to this on macOS @cartermp? |
Beta Was this translation helpful? Give feedback.
-
@haf If you require scripting with a .NET Standard component today, you'll need to apply a hack. I'm not sure how to do it for Mono, but if you build a temporary F# project that ultimately references the binaries you want to reference in a script, you can reference the binaries from that build output. Otherwise, you'll just have to wait until FSI fully supports referencing .NET Standard components. |
Beta Was this translation helpful? Give feedback.
-
@cartermp I have many projects targeting netcoreapp2.1 and the like. However, even if I do, their |
Beta Was this translation helpful? Give feedback.
-
I think there are two issues at play here, then:
The latter can't feasibly be done without also having the proper FSI package support, since making a given editor scrounge for magical .dlls isn't really a tenable solution. I would think that referencing a project that references the correct binaries should work through transitive references, though. |
Beta Was this translation helpful? Give feedback.
-
We've now concluded what we feel are the major blockers towards "as-is" support for FSI on .NET Core. A version should be available in the .NET Core 3.0 Preview 5 release - though @KevinRansom can confirm this more concretely. I think the overall issue has subsided significantly:
However, there are two remaining pieces to finish up:
The latter is probably best to work on once the former is finished. It's kind of moot to track it at this point since we won't be working on that until FSI proper is fully fleshed out and ready for us to cut it as a supported release. |
Beta Was this translation helpful? Give feedback.
-
Another update to this - package references are in. The only remaining hurdle is allowing for .NET Core-based scripting within VS. |
Beta Was this translation helpful? Give feedback.
-
Everything works at run-time (using fake as the host).
Repository here: https://github.com/0x53A/visualfsharp-issue-5216
build.fsx
in Visual Studioissues:
Version:
Beta Was this translation helpful? Give feedback.
All reactions