MSDN WebサイトからVisual Studio 2017(フルバージョン)をインストールしました。 .net framework 4.6を選択して、新しいAsp.Net Core Webアプリケーション(.Net Framework)を作成しました。プロジェクト名= "WebApplicationWithTemplate"
タイプClass Library(.Net Standard)の別のプロジェクトが、.net framework 4.6が選択された状態で再び追加されました。プロジェクト名= "DataAccessRegular"
次に、クラスライブラリプロジェクトの参照をAsp.Net Core Webアプリケーションに追加しようとすると、このエラーが表示されます。
'E:\ Development\VS2017Solution\DataAccessRegular\DataAccessRegular.csproj'のプロジェクト情報が見つかりません。 これは、プロジェクト参照がないことを示しています。WebApplicationWithTemplate C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft。 NET.Sdk\build\Microsoft.NET.Sdk.targets 92
また、クラスライブラリ(.netコア)プロジェクト(上記のスクリーンショットには表示されていません)を作成し、asp.netコアプロジェクトへの参照を追加しても、同じエラーが発生します。
githubのこのリンク も読んでください。しかし、残念ながら役に立ちませんでした。
これを尋ねるポイントは、モデル、サービス、およびデータアクセスレイヤーを別のプロジェクトに保持したいからです。
これを解決するには、クラスライブラリのcsproj
で、<TargetFramework>netstandard1.4</TargetFramework>
を<TargetFramework>net46</TargetFramework>
または<TargetFrameworks>netstandard1.4;net46</TargetFrameworks>
に変更します
複数のターゲットを指定する場合、要素はTargetFrameworkではなく、複数のTargetFrameworksに変更する必要があることに注意してください( csprojファイルでのターゲティング )
表示されているのは、ターゲットフレームワークのドロップダウンでの選択ではなく、実際に.NET Standard(netstandard1.4
)をターゲットにしているClass Library (.NET Standard)
テンプレートからのものです。代わりにClass Library (.NET Framework)
テンプレートを使用しても機能します。
更新:
追加オプション:
.NET Framework 4.6.1
に変更します(これにより、netstandard1.4
をターゲットとするものを参照できますnetstandard1.3
に変更します(これにより、.NET Framework 4.6
をターゲットとするプロジェクトから参照できるようになります)また、これらの問題が https://github.com/dotnet/sdk/issues/829 および https://github.com/dotnetで表面化する方法の改善を追跡しています/ roslyn-project-system/issues/147
ソリューションから(自分でビルドした)nugetパッケージを削除し、パッケージのビルド元のプロジェクトへのプロジェクト参照に置き換えた後に、この問題が発生しました。問題の解決策は...? VSを閉じて再度開きます。
参照がプロジェクト参照としても参照参照としても追加されたという間違いを修正して、これを解決しました。
したがって、アセンブリは2回参照されました-直接アセンブリとして-および間接的に含まれるプロジェクトの出力として。
参照参照を削除し、プロジェクト参照のみを保持すると、クリアされました。
.csprojに保存されている参照プロジェクトのパスでは、大文字と小文字が区別されます!そのため、正しいケースに正しいパスがあるかどうかを確認してください!これをする:
<ProjectReference Include=<Path>
注(KDuenke):これは、特にWindows Dockerを使用している場合、Windowsマシンでも問題になる可能性があります。
Dllを誤って参照し、プロジェクトを参照している場合、ソリューションエクスプローラーのReferences/Assembliesノードにも.dllが含まれていることがわかります。参照プロジェクトの下で同じ名前のプロジェクトを確認できます。参照されるプロジェクトが必要な場合は、アセンブリからcontains.dllを削除するか、contains .dllへの参照のみが必要な場合は、プロジェクトを削除します。
私の場合、参照/アセンブリリストからアセンブリを削除しました。
この同じ問題があり、アセンブリから参照クラスを削除し、この問題を解決します
私の場合、プロジェクトAには、プロジェクトAのプロジェクト参照でもあるプロジェクトCからビルドされたNuGetパッケージを含むプロジェクトBプロジェクト参照がありました。ソリューションは、NuGet参照をプロジェクト参照に変更することでした。
Dllの参照をアセンブリに追加し、依存関係にもプロジェクト参照として追加した場合、この問題に直面します(多くの考えられる理由の1つ)
依存関係のアセンブリセクションから参照を削除するだけです
以下を確認してください: 例
プロジェクトとフォルダの名前を変更するときにこの問題が発生しました(.csproj
file)も同様です。私はdotnet restore
2つのプロジェクトでこのエラーが発生し(名前を変更する前と「新しい」名前を変更したプロジェクトへの参照を追加した後、プロジェクトへの参照がありました)、ソリューションが正常にビルドされました。