Skip to content
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

dotnet-fake clitoolreference 5.19 Does not run :( #2447

Closed
BlythMeister opened this issue Dec 20, 2019 · 18 comments
Closed

dotnet-fake clitoolreference 5.19 Does not run :( #2447

BlythMeister opened this issue Dec 20, 2019 · 18 comments

Comments

@BlythMeister
Copy link
Contributor

When i update to fake 5.19 i get the following error whenever i try to start

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Threading, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
   at System.Console.get_OutputEncoding()
   at Program.main(String[] args) in D:\a\1\s\src\app\Fake.netcore\Program.fs:line 306

This is when bootstrapping via paket.
We prefer this approach as it makes setting a version of Fake that our shared build scripts use far easier.
Using a global tool across 50+ repositories and ensuring they have compatible versions was a nightmare!

@matthid
Copy link
Member

matthid commented Dec 20, 2019

So you use dotnet-fake clitoolreference? To be completely honest with you I wanted to deprecate that package I just forgot to do it...

@BlythMeister
Copy link
Contributor Author

Yeah, how else is it possible to set a version of fake to use in a nuget?

We package up the build script (as a dll) and download into every repo with a known working version of fake.

@matthid matthid changed the title FAKE 5.19 Does not run :( dotnet-fake clitoolreference 5.19 Does not run :( Dec 20, 2019
@BlythMeister
Copy link
Contributor Author

BlythMeister commented Dec 20, 2019

basically, in my paket dependencies file for every repo i have

group Fake
source http://nugets.[companyName].local/api/odata
source https://api.nuget.org/v3/index.json
framework: netstandard2.0
strategy: min

nuget [company].Fake prerelease
clitool dotnet-fake

and every repo build.fsx says

#r "paket: groupref Fake //"

#load "./.fake/fake.fsx/intellisense.fsx"

[companyName].Fake.Runner.RunDefault()

my package for [company].Fake is a paket.template with

type project
id 15below.Fake
version 0.0.0.0-local
dependencies
	dotnet-fake = LOCKEDVERSION-DependantTools
	NUnit.ConsoleRunner = LOCKEDVERSION-DependantTools
	OctopusTools = LOCKEDVERSION-DependantTools
	Paket = LOCKEDVERSION-DependantTools
include-pdbs true

whereby DependantTools is another paket group setting the versions to package the dependent tools as :)

@matthid
Copy link
Member

matthid commented Dec 20, 2019

Can't you use local repo tools in v3 sdk?

(not to say that we shouldn't fix this issue but I'm still planning to deprecate this, because as you can see ms has abandoned this a long time ago and it is hard to keep it running)

@BlythMeister
Copy link
Contributor Author

local repo tools is great...but i need to centrally control.
since the version of FAKE and the runner may cause incompatibility due to any breaking FAKE change.

@matthid
Copy link
Member

matthid commented Dec 20, 2019

In addition there is no real story for upgrading the runtime with these kind of packages, so dotnet-fake is already running on older runtimes than all the other packages

@BlythMeister
Copy link
Contributor Author

looks like i need to work a way to package my runner package called from the build script and define the local tool version......not even sure that is possible...

@matthid
Copy link
Member

matthid commented Dec 20, 2019

I think I'll unlist this version of dotnet-fake and go from there

@BlythMeister
Copy link
Contributor Author

yeah, if it doesn't work...seems best.

it's a bit of a shame there is no nice way to do central versioning now though :(

@matthid
Copy link
Member

matthid commented Dec 20, 2019

Yeah I'd redirect that feedback to the sdk team ;)

@BlythMeister
Copy link
Contributor Author

the issue is very chicken and the egg.

If i use paket as a local tool...how do i get the json into the repository...i can't use paket :p

@matthid
Copy link
Member

matthid commented Dec 20, 2019

It always is chicken egg, most people seem to have decided to start with an installed sdk and go from there (dotnet tool restore)

@matthid
Copy link
Member

matthid commented Dec 20, 2019

since the version of FAKE and the runner may cause incompatibility due to any breaking FAKE change.

Note that this shouldn't happen all to often, usually the only compat issue is using newer packages with older runner, using a newer runner should never produce problems in practice. I wouldnt wonder if the latest runner still runs fake 5 alpha or beta scripts

@BlythMeister
Copy link
Contributor Author

that's good to know, maybe i worry about a problem that doesn't exist....

@matthid
Copy link
Member

matthid commented Dec 20, 2019

Btw do you have any interest in fixing this?

@BlythMeister
Copy link
Contributor Author

I moved to the recommended approach of local tool for paket and fake now...

@matthid
Copy link
Member

matthid commented Dec 20, 2019

Ok then I'll just do a proper announcement, close this and remove the project in order to stop releasing dotnet-fake. I feel like there is not enough demand for this

@matthid
Copy link
Member

matthid commented Feb 9, 2020

See #2465

@matthid matthid closed this as completed Feb 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants