我知道之前已经问过这个问题,但是没有一个建议的决议对我有用,所以我会再次提出这个问题并希望得到新的建议。我读过的一些文章:
VS .Net References with yellow triangle Why do I get a warning icon when I add a reference to an MEF plugin project? The exclamation mark in the yellow triangle icon (inside Solution Explorer)
我的5个可移植库肯定都是针对相同的框架(我已经检查并重新检查,因为这是其中一个建议!):
到目前为止我尝试过/做过的事情:
以下是我的一个便携式类库的部分:
<ItemGroup>
<Reference Include="crypto">
<HintPath>..\..\..\packages\Portable.BouncyCastle.1.8.1\lib\portable-
net4+sl5+wp8+win8+wpa81+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10
\crypto.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\..\packages\Newtonsoft.Json.8.0.3\lib\portable-
net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http">
<HintPath>..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-
net40+sl4+win8+wp71+wpa81\System.Net.Http.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Extensions">
<HintPath>..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-
net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll
</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Primitives">
<HintPath>..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\portable-
net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll
</HintPath>
<Private>True</Private>
</Reference>
我的物理项目路径是:
C:\ XXXX \ XXXXXX \ XXXXX-XXXXXXX
所以以bouncycastle为例,基于上述情况,我假设完整路径看起来像这样:
C:\ XXXX \ XXXXXX \ XXXXX-XXXXXXX \包\ Portable.BouncyCastle.1.8.1 \ lib中\便携式NET4 + SL5 + WP8 + win8的+ wpa81 + MonoTouch10 + MonoAndroid10 + xamarinmac20 + xamarinios10 \ crypto.dll < / p>
这似乎只是我的便携式库上的问题,因为我在我的uwp解决方案上重新安装了所有Nuget软件包,它们都按预期工作。令人沮丧的是,我的项目仍位于其原始位置,运作良好。我已经卸载了软件包并重新安装了它们,所有内容都按预期工作了100%。
有没有人有任何其他建议?
答案 0 :(得分:58)
如果您在安装过程中未收到任何输出错误,则构建/重建时没有警告。简单地:
- 重新启动Visual Studio
醇>
答案 1 :(得分:22)
我弄清楚问题是什么!
正如@Gusman所说,我关掉了警告开关。一旦我打开它,我的便携式项目显示以下内容:
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
它提供了本文Diagnosing Project System Build Errors
的链接按照提供的说明并检查以designtime.log
结尾的众多文件后,我注意到所有文件都FAIL
引用Nuget
包,但如上所述,我已删除所有这些来自我的各个项目,所以我去重新检查其中一个.csproj
,这是我发现问题的时候!
实际上有两个问题:
Microsoft.BCL.Build
的{{1}}引用无法正常删除!!
重新添加Nuget
Nuget包时,它未在Microsoft.BCL.Build
以下是故障示例:
.csproj
正如您所看到的那样,第一行即<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>
不应该存在,但即使<Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.21>
已被移除,它仍会保留在项目中。
如果你需要它,请保留并修复第二个条目,因为这就是我所做的。如您所见,有两个条目检查Microsoft.BCL.Build
Microsoft.BCL.Build
包。就我而言,我只是删除了第一个:
Nuget
并保留了这一个:
`<Error Condition="!Exists('..\packages\`
完成`<Error Condition="!Exists('..\..\..\packages\`
的编辑后,我在我的解决方案中重新加载项目,不仅解决了Microsoft.BCL.Build问题,还解决了用黄色三角标记的所有其他Nuget依赖项。
在此过程中大部分时间都浪费了,但希望这会对其他人有所帮助。
答案 2 :(得分:5)
我在vs2017的解决方案中遇到了同样的问题,其中有2个项目用于框架DotNetCoreApp 1.1。 全部我的包裹显示惊叹号/黄色三角形。一旦我以管理员身份运行vs2017,就解决了。
答案 3 :(得分:2)
I had a same issue when I cloned a project to my laptop from GitHub. There are yellow triangles displaying on my EntityFramework and AspNet.Identity as well. What I did to solve the issue in my case was to remove the packages folder (which contains Nuget packages) and restore packages once I opened the project. As a result, those warnings were switched off after I restarted VS2017.
答案 4 :(得分:1)
您可以在此处查看我对相关主题的答案,因为特别是如果您有一个生产环境项目,则此主题的答案是做事情的危险方式:https://stackoverflow.com/a/59704420/7969733
仅出于文档目的此问题的新手 这,你会记住我:D
如果您转到:工具> NuGet管理员>配置。你呢 勾选“允许nuget ....”和“自动检查....”。
唯一要做的就是单击按钮“清除 所有NuGet缓存”
就是这样,您不必编辑可能会很危险的手动想法, 相信我,我曾经需要做一些比这里描述的步骤 很多时间,并尝试超过5步的正式Microsoft 有关该问题的文档,您可以在此处进行检查: https://docs.microsoft.com/es-es/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio
但是仅清理缓存即可解决所有问题
答案 5 :(得分:0)
答案 6 :(得分:0)