Home

.NETStandard 2.0 packages: No usable .NET assemblies in package

Hey, I’m trying to consume the aspnetcore-dev MyGet feed for prerelease version of ASP.NET Core and related packages.

In particular, I’m trying to load the following packages:

https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.EntityFrameworkCore
https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.Extensions.Logging
https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.Extensions.Configuration

I keep getting the error message “There are no usable .NET assemblies in package 'XY'.” regardless of which version I attempt to download.

I assume this may be an error with the .NET framework version since those prerelease packages need .NETStandard 2.0. So I made sure that I have the .NET Framework 4.7 installed (which should implement .NETStandard 2.0) and tried the latest LINQPad beta, but that didn’t help.

Is there some fix required in LINQPad to make this work, or am I doing something wrong?

Comments

  • I am working on this at the moment. It seems I need to upgrade LINQPad from using NuGet 3 to NuGet 4. This is non-trivial as several things have changed, and there's little documentation on how to use the internals of NuGet.
  • I figured something like that was necessary to do. It’s not a pressing issue for me right now, but I’m glad to hear that you are on it! Thanks a lot! :)
  • I'm running into this issue also. It's a tad more pressing for me, as I use this tool extensively for questions on my library. My library is now netstandard2.0 only.
  • Try the latest beta - it uses NuGet 4, which should solve the problem. Let me know if there's still an issue.
  • edited September 2017
    @JoeAlbahari I have the latest beta installed and I am now able to add nuget packages that target NETStandard2.0 but I am not really able to use them.

    For example:
    1) Add Microsoft.Extensions.DependencyInjection 2.0.0 (which used to not be possible in the previous version of LINQPad).
    2) Notice that there are no namespaces that can be added, but go ahead and add the namespace "Microsoft.Extensions.DependencyInjection" manually
    3) Notice that when you try to use the "ServiceCollection" class, most of the methods and extension methods are not displayed, and you get the following error:

    image

    4) So, then I try and add the netstandard 2.0 nuget package, and I get the following error:

    image

    Thanks!
  • Ugh, netstandard is kind of a mess with things breaking as soon as you’re outside of a netcoreapp. Some issues which are related to the above problem, or which may become a problem once you figure out how to solve those:

    https://github.com/dotnet/sdk/issues/1220
    https://github.com/dotnet/sdk/issues/1267
    https://github.com/dotnet/sdk/issues/1488
    https://github.com/dotnet/msbuild/issues/2481

    Wish I could help more than that. I have some idea how to work with the stuff using project files now, but I have no idea how that could be applied to however LINQPad compiles stuff :/
  • Thanks for the links. Being a scratchpad, LINQPad uses the standard Roslyn tool chain, not MSBuild. This might make a solution challenging. I'm speaking at conferences this week and next; after that I will give this priority and see if I can find some kind of workaround.
  • I've just uploaded a new beta with significant changes to improve compatibility with .NET Standard 2.0. You won't need to add a reference to NETStandard.Library as the required library is now added automatically.

    https://www.linqpad.net/download.aspx#beta

    If you're still having trouble, please run the following query to determine the exact framework version:
    http://share.linqpad.net/37mvfc.linq

    and also tell me your OS version.

    Thanks
  • Hey Joe, thanks for the update, this is really looking good so far.

    I’m just hitting one more error, which I have fortunately already seen myself. Exactly this one: https://github.com/aspnet/Logging/issues/697

    It seems that LINQPad needs to be set up to generate binding redirects by default. Of course, again no idea how you do that without MSBuild ;D
  • Are you sure it's the exact same error?

    When I consume Microsoft.Extensions.Logging.Console, I get a different error - that System.Runtime.InteropServices.RuntimeInformation cannot be found - not that it has an invalid manifest.

    I've uploaded a new build that fixes the file-not-found error. Can you please test this and let me know. If you're still getting an error, I might be able to fix it if you can post a step-by-step repro.
  • Oh, you’re right, I wasn’t looking at the exception properly and just assumed it was the one I saw before. I did get a FileNotFoundException as well, yes, and the latest beta does work for me.

    I’ll let you know if I encounter any other problem, but I’ll assume that it is working fine now (until the next NuGet Update? >_<"). Thanks a lot for your help!
  • The new build is working for me. Thanks Joe! You rock! :smile:
  • I have a dotnet standard 2.0 lib that has DbContext, but when I try to use it it gives the following error:

    ---------------------------
    Cannot load assembly: Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
    ---------------------------

    How do I fix this problem?

    Thanks,
    Homero
  • LINQPad 5 - v5.26.0.1

    This error occurs when I try to make a new connection using my lib, in dotnet standard 2.0.
  • I also just encountered a new issue with 5.27.01 when trying to use the Span<T> type from the System.Memory NuGet package (using version 4.4.0-preview1-25305-02).

    The following code causes a FileNotFoundException for System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0.
    var arr = new int[]{ 2, 3, 4, 5};
    var span = new Span(arr);
    Console.WriteLine(span[0]);
  • Press F4 and click on the NuGet hyperlink for System.Memory and choose 'Show assemblies in this package'. Do you see System.Runtime.CompilerServices.Unsafe?
  • Sorry Joe, for not getting back to you earlier. I tested this at home and there it was working properly and the CompilerServices.Unsafe assembly was listed in the “Show assemblies in this package” list.

    I’m back at work now, and tried to do the same there, and the package is not listed there, although I’m using the same version of everything (at least I think?).

    I tried clearing the package cache but that also didn’t help. I also tried both the older 5.27.01 (where the issue originally appeared), and the newer 5.28.00.
  • Do you have Framework 4.7 installed on your work machine?
  • edited January 2018
    I’m running release 460805 which according to this doc is 4.7.

    Interestingly, I also tried the same on a virtual machine that is running 4.7.1 and it is working there. But when I tried it there, I did get a new license agreement dialog when adding the package (which also included CompilerServices.Unsafe there), while I don’t get that anymore on my main machine. So I wouldn’t be too surprised if there’s actually a cache somewhere?

    ---

    welp, I just did things (don’t know what exactly; looked through my NuGet config, cleared more cached things in AppData/Local/NuGet/, manually removed “System.Memory” items there), and suddenly it’s working. No idea what exactly caused this now :/ But at least it’s solved now…? :sweat_smile:
  • I have a multi-targeting package for net452 and netstandard16 and am getting this "no usable .NET assemblies" dialog when trying to reference it. Using LinqPad v5.28.03. Should this be happening in this beta version still?
  • I am getting an error: "Unable to find the requested .Net Framework Data Provider. It may not be installed."
    The computer is Windows 10 Pro 64 bit with 8GB of ram. I have installed the latest .Net framework and tried every version of LINQPad. I have purchased the full version of the software but I have not activated it yet.
  • edited January 2019
    I'm running into this today. My issue is with trying to add a local .net standard assembly that I compiled myself, not one that I downloaded from NuGet. I can add the assembly by using Browse, but when I try to call methods on objects I get "Reference required to assembly netstandard...'. I if I try to add the reference to netstandard 2.0 myself I get "There are no usable .NET assemblies in package".

    I'm getting this in v5.36.03 and latest beta v5.37.01 (Any Cpu)
Sign In or Register to comment.