PCLライブラリを新しい.Net標準ライブラリに変換したところです。以下に示すように、依存関係に黄色の警告の三角形がいくつかあります。
変換中に、すべてのnugetパッケージが依存関係を含むようになったため、重複する可能性がありました。
黄色の警告の三角形が何を表すのかを知るにはどうすればよいですか?
編集
ビルドログ:
ビルド中にNuGetがパッケージを復元しないようにするには、Visual Studioの[オプション]ダイアログを開き、[パッケージマネージャー]ノードをクリックし、[ビルド中にNuGetに不足しているパッケージのダウンロードを許可する]をオフにします。 NU1605:パッケージのダウングレードが検出されました:NUnit 3.8.1から2.6.4プロジェクトから直接パッケージを参照して、別のバージョンを選択します。
MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit(> = 3.8.1)
MyProj.UI.Tests-> NUnit(> = 2.6.4)NU1605:パッケージのダウングレードが検出されました:NUnit 3.8.1から2.6.4。プロジェクトから直接パッケージを参照して、別のバージョンを選択します。 MyProj.UI.Tests.iOS-> MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit(> = 3.8.1)MyProj.UI.Tests.iOS-> NUnit(> = 2.6.4)NU1605:パッケージのダウングレードが検出されました:NUnit 3.8.1から2.6.4プロジェクトから直接パッケージを参照して、別のバージョンを選択します。
MyProj.UI.Tests.Android-> MyProj.UI.Tests-> MyProj.Core.Tests-> NUnit(> = 3.8.1)MyProj.UI.Tests.Android-> NUnit(> = 2.6 .4)
ビルドログで私はたまたまこれに気づきました:
C:\ Program Files\dotnet\sdk\2.0.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets(199,5):警告: 'NETStandard.Library'のPackageReferenceはプロジェクトに含まれています。このパッケージは.NET SDKによって暗黙的に参照され、通常はプロジェクトから参照する必要はありません。詳細については、 https://aka.ms/sdkimplicitrefs を参照してください
したがって、.Net Standard
nuget の依存関係としてリストされているすべてのパッケージをアンインストールして、ここにリストしました。
。NETStandard 1.1
Microsoft.NETCore.Platforms(> = 1.1.0)
System.Collections(> = 4.3.0)
System.Collections.Concurrent(> = 4.3.0)
System.Diagnostics.Debug(> => 4.3.0)
System.Diagnostics.Tools(> = 4.3.0)
System.Diagnostics.Tracing(> = 4.3.0)
System.Globalization(> = 4.3.0)
System.IO(> = 4.3.0)
System.IO.Compression(> = 4.3.0)
System.Linq(> = 4.3.0)
System.Linq.Expressions(> = 4.3.0)
System.Net.Http(> = 4.3.2)
System.Net.Primitives(> = 4.3.0)
System.ObjectModel(> = 4.3.0)
System.Reflection(> = 4.3.0)
System.Reflection.Extensions(> = 4.3.0)
System.Reflection.Primitives(> = 4.3.0)
System.Resources.ResourceManager(> = 4.3.0)
System.Runtime(> = 4.3.0)
System.Runtime.Extensions(> = 4.3.0)
System.Runtime.InteropServices(> = 4.3.0)
System.Runtime.InteropServices.RuntimeInformation(> => 4.3.0)
System.Runtime.Numerics(> = 4.3.0)
System.Text.Encoding(> = 4.3.0)
System.Text.Encoding.Extensions(> = 4.3.0)
System.Text.RegularExpressions(> = 4.3.0)
System.Threading(> = 4.3.0)
System.Threading.Tasks(> = 4.3.0)
System.Xml.ReaderWriter(> = 4.3.0)
System.Xml.XDocument(> = 4.3.0)
そして、黄色の警告が消えました。
ここから: https://blogs.msdn.Microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/
また、次のようにNoWarnプロパティを使用できることもわかりました。
<ItemGroup>
<PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>
複雑な操作を行う前にdotnet restore
を実行すると、エラーウィンドウやソリューションエクスプローラーよりも多くの情報が提供されます。
Package Managerコンソールでこのコマンドを実行できます。
ツール> NuGetパッケージマネージャー>パッケージマネージャーコンソール
黄色の三角形は、パッケージの物理ファイルがなくなり、HDDで使用できなくなったことを意味します。
これは通常、TFSのソース管理でget latest version
要求を発行する場合、特に新しいマシンを使用する場合に発生し、TFSサーバーからプロジェクトコードを取得する必要があります。
low quality internet connection
が原因である可能性もあります。ほとんどの場合、データが失われたり、ダウンロードされたファイルが破損したりします。
問題でいくつかのパッケージが欠落している場合、packages.config
ファイルを変更し、packages.config
からこれらのパッケージを削除し、nugetパッケージマネージャーを使用して欠落しているパッケージを再インストールできます。
しかし、問題がいくつかのパッケージよりも不足している場合、不足しているパッケージを取得するための最良かつ迅速な方法は次のとおりです。
Packages
のすべてのコンテンツをコピーします。注パッケージフォルダー自体はフォルダー内のコンテンツのみをコピーしません。Packages
フォルダーに貼り付け、既存のアイテムを上書きします。注プロジェクトから欠落しているファイルに関連するこのような問題は常に修正するのが難しく、開発者の経験に依存するため、この簡単な解決策を期待しないでください。
エラーの原因について、Microsoftはそれがバグであると言っていますが、Visual Studioのどのバージョンでも発生する可能性があります。
ささいなことですが、VSを再構築してから再起動してみてください。
他のすべてがロードされない原因となる可能性のあるパッケージが1つある場合があります。 .csprojからパッケージを1つずつコメントしてみて、どのパッケージが問題であるかを見つけて絞り込みます。
ダウンロードして install IIS Express