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

Question - Are the Microsoft.Bcl libraries now required? #75

Closed
jonreis opened this issue Jan 30, 2017 · 10 comments
Closed

Question - Are the Microsoft.Bcl libraries now required? #75

jonreis opened this issue Jan 30, 2017 · 10 comments
Assignees

Comments

@jonreis
Copy link

jonreis commented Jan 30, 2017

Hi Stephen, first, thank you for your library, I love it.

I have a question regarding the 4.0.1 release. I just pulled it and noticed that it pulled in the Microsoft.Bcl libraries and build targets. I was under the assumption those were only required older versions of the .NET platform? I do not see any dependencies between your libraries and Microsoft.Bcl. My project is set to build against the .NET 4.6.2 framework.

Questions:

  1. Do I need Microsoft.Bcl.Build.targets?
  2. Are the AsyncEx libraries in anyway dependent on the Microsoft.Bcl and Microsoft.Bcl.Async libraries when running under .NET 4.6.2?

Thank you in advance,
Jonathan

@StephenCleary StephenCleary self-assigned this Jan 30, 2017
@StephenCleary
Copy link
Owner

Yes, unfortunately, due to the way the PCLs form the core of this project, they are required. See #13.

v5 will target netstandard and not require Microsoft.Bcl any more.

@jonreis
Copy link
Author

jonreis commented Jan 30, 2017

Thank you for the info Stephen. I will probably wait until v5 before upgrading.

@kyberias
Copy link

This is somewhat of a show-stopper. There doesn't seem to be a good release of AsyncEx for classic .NET that wouldn't bring extra baggage.

@StephenCleary
Copy link
Owner

@kyberias Unfortunately, the problem as specified in #13 is outside my control. Classic .NET support requires Microsoft.Bcl for a PCL-based approach; there's simply no getting around that. The netstandard-based v5 does not have that dependency.

You can use the prerelease v5 today; I want to fix #107 before calling it fully production-ready, but a lot of people are already using it in production (#107 only shows up if you mix blocking and asynchronous calls and exhaust your thread pool).

@kyberias
Copy link

I tried the pre-release v5 but it seems to bring a lot of additional (.NET Standard?) references to my assembly. I'm not sure I want that.

@bqstony
Copy link

bqstony commented Oct 12, 2018

I Have also a problem with the Microsoft.Bcl.Build package. We use Package reference insteed of package.config in full framework 4.7.1 solution. My workaround is actually to ignore the target as follow:

    <PackageReference Include="Microsoft.Bcl.Build">
      <Version>1.0.21</Version>
      <ExcludeAssets>build</ExcludeAssets>
    </PackageReference>
    <PackageReference Include="Nito.AsyncEx">
      <Version>4.0.1</Version>
    </PackageReference>

I Hope this will not has a impact! can you confirm that @StephenCleary

@StephenCleary
Copy link
Owner

@bqstony That's an interesting approach! I'm not sure what all impact that would have. I expect it would work fine with modern tooling, but I'm not familiar enough with the .targets files to know for sure.

@bqstony
Copy link

bqstony commented Oct 17, 2018

After some days i see actual no bad behavior for my solution. But i will look forward to V5...

@rollsch
Copy link

rollsch commented Apr 14, 2021

Is there any update to this? Are the libraries still required?

@StephenCleary
Copy link
Owner

@rolandh v5 targets netstandard and does not require Microsoft.Bcl.Async anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants