-
Notifications
You must be signed in to change notification settings - Fork 587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FileNotFoundException: System.Memory #2097
Comments
You can use Generally I'd ask why you get "Last restore is still up to date", I'd not expect that on the CI server. |
paket why:
in my script i do
with my scripts i am using |
here is a MVP for what i am using...the script itself is pointless to protect our IP...but hey shows the same issue :) This script works on my PC (and other developer PCs) but it doesn't on my CI server....it must be environmental, but i can't work out what... |
You can try running with |
i have a full log, but the "interesting bit" i think is this:
|
Oh wow so the problem is in the runtime, actually system.runtime should be part of the directory where fake is run from ( |
this is the full output...output.txt
|
I bet this only happens with |
i manually added the fake-cli tool onto the server using So dotnet-fake behaves differently :( |
dotnet-fake - i only have 2.0.3 on build server, another dev who gets this working has 2.0.2...so going in hunt for that installer to see if this is the problem |
so...i fixed it...i took Strange that it won't use 2.0.3...could we make dotnet-fake and fake-cli use the same netcore version? |
scrap that...it works when i manually run the script...but when teamcity does, same error still :( |
We didn't update |
Can you report this to the dotnet-cli guys, I'd assume this is some bug in the I'd assume nuget somehow decides to take one of the marked code-paths. I wouldn't be surprised if that exact bug is the reason why they decided to introduce cli-tools and bundle all dependencies instead of relying on nuget |
but it's coreapp2.0 not 2.1 |
@matthid i can raise it...but i don't know what to say other than...here is an issue and i was told to raise it by the FAKE guys.... |
I'm pretty positive this should reproduce in a standalone netcoreapp 2.0 application as well you can try that and report that ... Try creating a new netcoreapp 2.0 application reference paket core and try to trigger a download, bundle it as clitoolreference and try on your ci |
Do you have different PATH or DOTNET_ROOT when running on your build server? It's a bit strange that it only reproduces there and only in the ci process (is that correct?) |
@matthid it seems to be something in the fake code itself though. Fake appears to try and download the netstandard.library 2.0.2 My machine (after i delete package from cache)
Build server
|
if i manually put the 2.0.2 package into the user cache...or even get add it to the paket dependencies pinned to 2.0.2 everything works! Its actually always on the CI machine... |
I don't understand. Yes fake is downloading netstandard.library outside the regular resolution in order to have reference assemblies in order to compile the script. But the problem is that downloading fails because the runtime is missing/unable to resolve a reference to System.Memory, which should be available to the fake runtime. The problem is not that the download is not possible on the CI but that a reference is missing (which is a tooling problem/bug) |
Well the logging states it's starting download and then get the error on the ci. |
No it's the other way around: It cannot download because missing System.Memory. |
The Fake runtime doesn't even come to the point of compiling or running the script |
As I understand the error it is similar as if "Mono-Cecil" would just be missing at some point (another more direct dependency of https://www.nuget.org/packages/dotnet-fake) |
Where would system.memory be? |
@matthid since you seem to have a better grasp of the cli issue, would you be able to raise it there for me with relevant detail...I'm a bit lost to be honest 🙁 |
My big query over the dotnet cli being the cause is that it works on 1 machine and not the other...both running the latest .net core and vs tools. |
As long as we are not able to reproduce on a second machine I'm not reporting it ;) |
And I'm just trying to explain what I know for you to play around and maybe figure out what's going on/reproduce it |
Fair enough...I got 10 agents all with the same issue...but equally 3 machines without. So I'm at a loss... |
I also really appreciate your help... especially as I don't think this a fake or even paket for that matter issue. |
Interesting, anything they share? Are your agents always clean machines or installed manually?
Let's keep this issue focused on the issue, using |
What I would do next is do Edit: wrong package |
I was focused on the running, not the restore...I'll focus more on restore on Monday...or maybe with a beer tonight 😂 All agents are the same...they are VMS from the same image. |
i cant see anything special in the logs... any ideas... |
Can you try to set |
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES That works!!!!! |
What a fucking mess |
by the way: NuGet/Home#5067 |
Oh wow...what a mess! |
yes indeed |
If nothing else...ive learnt that even the new tooling has huge flaws 😂 Thank you for all your help once again, I would never have found that! |
Ok I think have updated the relevant places/templates and added a comment to the nuget issue. I'd assume other people will encounter this in the future as well. Thanks for debugging this all the way through. This will be the canonical issue ;). But I'm closing is as I don't see anything else we could do (besides maybe tweeting/bloging about it) |
Description
When running dotnet fake run script.fsx on my machine all is good.
When running on my CI i get this error.
Now, i don't think that this is a FAKE issue per-say, but i can't establish why FAKE is trying to pull System.Memory
This is my script running on my machine vs build agent
The text was updated successfully, but these errors were encountered: