-
Notifications
You must be signed in to change notification settings - Fork 588
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
build.cmd fails if Fake package was previously installed via Chocolatey #1611
Comments
I'm trying to create a PR for this but I need more information on the expected behavior. Should we update the Fake package generation for nuget.org so it has 'tools' folder? Or this is something that was changed in v5 and build.cmd should search for fake.exe in both folders? |
Ah nice catch. I think what happens is that appveyor uses the wrong fake.nupkg from 'nuget/dotnetcore/Fake.nupkg' instead of 'nuget/legacy/Fake.nupkg'. those are different and we never actually use or need the first one. It's an artifact because we package all projects. Probably just deleting the wrong nupkg in the build will fix that... |
or appveyor detects the chocolatey package, then we need to adapt the build or the appveyor.yml |
@matthid , thanks for the update on this. The issue is only for the Chocolatey package. Details: I see that FAKE NuGet uses the I believe it's better to keep content and structure consistent for Chocolatey and NuGet. Linking the PR, please take a look: |
are you trying to say that chocolatey and nuget use a shared cache? |
yes, I see that Repro steps are in the bug description |
Oh, the issue was due to the old (I believe 0.9.x or older) Chocolatey version installed locally... After upgrading Chocolatey to the latest 0.10.7 I don't see this issue anymore. I see someone faced the same issue here: |
Closing current bug |
Description
build.cmd fails if Fake package was previously installed via Chocolatey
The root cause:
NuGet packages from https://ci.appveyor.com/nuget/fake and http://nuget.org/api/v2 have a different structure.
appveyor
nuget.org
build.cmd expects that FAKE package has 'tools' folder with fake.exe. But the Fake package contains bin folder only
Repro steps
Clean NuGet cache:
C:\Users<user>.nuget\packages
C:\Users<user>\AppData\Local\Nuget\Cache
Install Fake 5 via Choco:
choco install fake -pre
Currently it's the FAKE.5.0.0-alpha010
See that "C:\Users<user>\AppData\Local\Nuget\Cache" has fake.5.0.0-alpha010.nupkg
Pull Fake repository from git.
paket.lock currently references Fake as:
Build.cmd will call
.paket\paket.exe restore
and the cached version from Choco will be restored.Expected behavior
Restored Fake package has 'tools' folder:
packages\build\FAKE\tools\Fake.exe
Actual behavior
Build fails because can't find fake.exe
Restored Fake package has 'bib' folder only:
packages\build\FAKE\bin\Fake.exe
Known workarounds
Clean NuGet cache and install Fake package from the https://ci.appveyor.com/nuget/fake
Related information
The text was updated successfully, but these errors were encountered: