プロジェクト参照と.NETコアに問題があります。.NETコア参照型プロジェクトが動作しません
は、私は、srcフォルダ内のライブラリ(MyLib
)とテストフォルダに2つのプロジェクト(MyLib.Tests
とMyLib.Tests.Support
)要約
を持っている:
|-- global.json
|-- src
| \-- MyLib
\-- test
|-- MyLib.Tests
\-- MyLib.Tests.Support
MYLIBはNuGetを通じて、すでに利用可能であり、テストプロジェクトそうではありません。
オプションを使用してをMyLib.Tests
以内に参照すると、dotnet-restore
が正常に動作します。ビジュアルスタジオでは、「参照」の下に、私はそれがプロジェクトの参照であることを示す小さなアイコンがあります。 (まだright click > add reference
オプションを使用して)MyLib
をMyLib.Tests
以内に参照すると、dotnet-restore
もうまく動作しますが、ナゲットリファレンスであることを示す小さなアイコンが表示されます。
期待された動作ですが、テストプロジェクトで「古い」NuGetパッケージをテストするのではなく、実際のコードをテストしたいと思います。
{
"dependencies": {
"NETStandard.Library": "1.6.0",
"SimpleDao": {
"target": "project"
"version": "2.0.0-*"
},
"MyLib.Tests.Support": "1.0.0-*"
}
}
しかし、その後、dotnet-restore
は失敗します:
- Visual Studioエラー:
NU1001 The dependency MyLib could not be resolved.
- コンソールエラー:
Unable to resolve 'MyLib' for '.NETStandard,Version=v1.6'
ここでは3210
はdocumentionと私がインターネットで見つけチュートリアルの多くによると、私はその後MyLib.Tests\project.json
でプロジェクトの依存関係としてMyLib
依存関係を設定します
は私global.jsonです:
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
は、事前に私の悩み
感謝を説明するのに適切である可能性が何か他のものを掲載していません。 (私の英語のためにすみません、私はネイティブスピーカーではないよ)
編集:実際にMyLib
は3つのLIBSで構成されています:
私は私のlibに何か問題でもあり実現
.netstandard1.1
MyLib.Impl1
を標的
MyLib
、ほとんどインターフェース、最初の実装、(NuGetにまだ).net451
と.netstandard1.3
を対象MyLib.Impl2
、第2の実施基準を追加するための同じ方法で常に(NuGet上のそれの最初のバージョンが既に存在する)
を.net45
をターゲット(right click > add reference
)。私はproject.jsonファイルを編集しませんでした(どちらも、このような参照を追加しています: "MyLib": "2.0.0- *")。
最初の実装では、ビジュアルスタジオはNuGetを通じて依存関係を取得します(参照タブにはNuGetアイコンがあります)。 MyLibのインターフェースについては、最新の編集はしていません。
2番目の実装では、ビジュアルスタジオはプロジェクト内の依存関係を取得します(プロジェクトのアイコンは[参照]タブにあります)。また、インターフェイスの最新の編集があります。それはバグで
私は、プロジェクトの依存関係としてMYLIBへの依存関係を設定するには、project.jsonを編集しようとすると、私はあまりにもパッケージ、テストのためのより同じエラーを復元することはできません...
です.NET Core(Visual Studioとdotnet-cliの両方で復元しようとしています)、何か問題がありますか?
編集3: NuGetにMyLib
とMyLib.Impl2
のプレリリース版を公開しました。私はそれらのバージョンを削除し、私のソリューションに戻る。今、MyLib.Impl1
とMyLib.Impl2
は私のプロジェクト参照を正しくターゲットにしています(MyLib.Impl1
の場合、project.jsonでターゲットを指定しなければならず、MyLib.Impl2
ではなくターゲットを指定しなければなりませんでした。
しかし、まだテストプロジェクトを修正できません。
Hereあなたは(移行支店内)私の全体のコードを見つけることができます私のgithubのリポジトリである:それはまだプロジェクト参照...
編集2で動作する必要はありません。
...になります。「2.0.0- * "' '' target ":" project "'だけを残していますか? – svick
同じです。コンソールラインで、エラーは次のようになります: ''NetStandard、Version = v1.6''の 'MyLib'を解決できません(これを追加するために私の初期投稿を編集します)。確かに、 'MyLib'はnetstandard1.1をターゲットにしています(.NET 4.5互換にするため)。しかし、それは問題ではありません。 netstandard1.1で書かれたものはすべて新しいバージョンと互換性があります... – fharreau
'netstandard1.1 'をターゲットにするために' MyLib.Tests'を変更しても、私は同じエラーを受け取ります。 – fharreau