.Net 2015 References with yellow triangle for Nuget packages on portable libraries

后端 未结 7 1430
伪装坚强ぢ
伪装坚强ぢ 2021-01-01 10:04

I know the question has been asked before but none of the suggested resolutions are working for me so I\'m going to ask it again and hopefully get new suggestions. Some of t

相关标签:
7条回答
  • 2021-01-01 10:14

    I figured out what the problem was!

    As mentioned to @Gusman I had my warning switch off. Once I turned them on, I got the following displayed for my portable projects:

    Warning: IDE0006 - Error encountered while loading the project. Some project
    features, such as full solution analysis for the failed project and projects
    that depend on it, have been disabled
    

    and it provided a link to this article Diagnosing Project System Build Errors

    After following the instructions provided and inspecting the numerous files ending in designtime.log, I noticed that all of them had a FAIL referring to a Nuget package but as mentioned, I had removed all of them from my various project, so I went to re-check the .csproj from one of them and this is when I spotted the problem(s)!

    There are actually 2 problems:

    1. The Microsoft.BCL.Build reference for Nuget does not get remove properly!!

    2. When re-adding Microsoft.BCL.Build Nuget package, it does not set the path correctly in the .csproj

    Below is an example of the fault:

    <Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.21
           \build\Microsoft.Bcl.Build.targets" Condition="Exists
           ('..\..\..\packages\Microsoft.Bcl.Build.1.0.21
           \build\Microsoft.Bcl.Build.targets')" />
    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
        <PropertyGroup>
          <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
        </PropertyGroup>
        <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\
            Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format
            ('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21
            \build\Microsoft.Bcl.Build.targets'))" />
        <Error Condition="!Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\
            Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format
            ('$(ErrorText)', '..\..\..\packages\Microsoft.Bcl.Build.1.0.21\
            build\Microsoft.Bcl.Build.targets'))" />
    </Target>
    

    As you can see the first line i.e. <Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.21> should not be there and yet it appears to remain in the project even though Microsoft.BCL.Build has been removed.

    If you need it leave it and fix the second entry as this is what I did. As you can see there are two entries checking for the Microsoft.BCL.Build Nuget package. In my case, I simply removed the first one:

    `<Error Condition="!Exists('..\packages\`
    

    and kept this one:

    `<Error Condition="!Exists('..\..\..\packages\`
    

    Once I finished editing the .csproj, I reloaded the project in my solution and not only was the Microsoft.BCL.Build issue resolved, it also resolved all the other Nuget dependencies that were marked with the yellow triangle.

    Wasted most of my day on this, but hopefully this will help others.

    0 讨论(0)
  • 2021-01-01 10:18

    I faced the same issue on a solution in vs2017 with 2 projects for framework DotNetCoreApp 1.1. All my packages showed the exclamation sign/yellow triangles. Once i ran vs2017 as an administrator, it was resolved.

    0 讨论(0)
  • 2021-01-01 10:22

    If you've received no output errors during install and there are no Warnings on build/rebuild. Simply:

    1. Restart Visual Studio
    0 讨论(0)
  • 2021-01-01 10:22
    1. Copy your project files to another folder
    2. Delete folder with the project of the solution
    3. Create new project with same name
    4. Copy files from step 1 to the new project
    5. Restore packages
    0 讨论(0)
  • 2021-01-01 10:28

    You could check my answer on relative topic here, because the answer of this topic it's a dangerous way to do things specially if you have a project on Production ambient: https://stackoverflow.com/a/59704420/7969733

    Just for documentation purpose for new person with this issue try this and you will rememberme :D

    If you go to: Tools > NuGet Administrator > Configurations. and you have "Allow nuget...." and "automatically check...." cheked.

    The only thing than you have to do is click con the button "Clear All NuGet Cache(s)"

    That's it, you don't have to edit manual thinks than can be dangerous, believe me, I use to need to done some of the steps than describe here a lot of time, and try more than 5 steps of the oficial microsoft documentation for that issue you could check it here: https://docs.microsoft.com/es-es/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio

    But just cleaning the cache solve all the problems

    0 讨论(0)
  • 2021-01-01 10:29

    I know it's an old post but recently I have been suffering from that warning error after changing my lap. I did a get with TFS (in visual studio 2017) and suddenly all my references had a warning icon. What I found working for me is that: go to object browser then select the combo box "All Components" and finally select your framework. For me, it worked like a charmed.

    0 讨论(0)
提交回复
热议问题