2016-10-13 13 views
1

プロジェクト参照と.NETコアに問題があります。.NETコア参照型プロジェクトが動作しません

は、私は、srcフォルダ内のライブラリ(MyLib)とテストフォルダに2つのプロジェクト(MyLib.TestsMyLib.Tests.Support)要約

を持っている:

|-- global.json 
|-- src 
| \-- MyLib 
\-- test 
    |-- MyLib.Tests 
    \-- MyLib.Tests.Support 

MYLIBはNuGetを通じて、すでに利用可能であり、テストプロジェクトそうではありません。

オプションを使用してをMyLib.Tests以内に参照すると、dotnet-restoreが正常に動作します。ビジュアルスタジオでは、「参照」の下に、私はそれがプロジェクトの参照であることを示す小さなアイコンがあります。 (まだright click > add referenceオプションを使用して)MyLibMyLib.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は失敗します:

    はdocumentionと私がインターネットで見つけチュートリアルの多くによると、私はその後MyLib.Tests\project.jsonでプロジェクトの依存関係としてMyLib依存関係を設定します

  1. Visual Studioエラー:NU1001 The dependency MyLib could not be resolved.
  2. コンソールエラー:Unable to resolve 'MyLib' for '.NETStandard,Version=v1.6'
  3. ここでは3210

は私global.jsonです:

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-preview2-003131" 
    } 
} 

は、事前に私の悩み

感謝を説明するのに適切である可能性が何か他のものを掲載していません。 (私の英語のためにすみません、私はネイティブスピーカーではないよ)


編集:実際にMyLibは3つのLIBSで構成されています:

私は私のlibに何か問題でもあり実現

.netstandard1.1
  • MyLib.Impl1を標的
    1. MyLib、ほとんどインターフェース、最初の実装、(NuGetにまだ).net451.netstandard1.3を対象
    2. 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にMyLibMyLib.Impl2のプレリリース版を公開しました。私はそれらのバージョンを削除し、私のソリューションに戻る。今、MyLib.Impl1MyLib.Impl2は私のプロジェクト参照を正しくターゲットにしています(MyLib.Impl1の場合、project.jsonでターゲットを指定しなければならず、MyLib.Impl2ではなくターゲットを指定しなければなりませんでした。

    しかし、まだテストプロジェクトを修正できません。

    Hereあなたは(移行支店内)私の全体のコードを見つけることができます私のgithubのリポジトリである:それはまだプロジェクト参照...


    編集2で動作する必要はありません。

  • +0

    ...になります。「2.0.0- * "' '' target ":" project "'だけを残していますか? – svick

    +0

    同じです。コンソールラインで、エラーは次のようになります: ''NetStandard、Version = v1.6''の 'MyLib'を解決できません(これを追加するために私の初期投稿を編集します)。確かに、 'MyLib'はnetstandard1.1をターゲットにしています(.NET 4.5互換にするため)。しかし、それは問題ではありません。 netstandard1.1で書かれたものはすべて新しいバージョンと互換性があります... – fharreau

    +0

    'netstandard1.1 'をターゲットにするために' MyLib.Tests'を変更しても、私は同じエラーを受け取ります。 – fharreau

    答えて

    0

    まあ、それは私が.NETのコアに完全な.NETからの私のlibを移植し、プロセスの間にされた...

    厳しいものだった、私は1つのプロジェクト(大文字/小文字の問題を)misnamed。私は正しいケースで名前を変更しましたが、.slnでは何も変更しませんでした。

    このプロジェクトを別のプロジェクトの参照として追加したところ、Visual Studioでは.slnの名前は変更されず、現在のものではありませんでした。

    このような場合に問題があるときに、ローカルのプロジェクトによりNuGetの参照を見つけることが容易だったようにそれはあなたが `「バージョン」を削除した場合はどうなり

    関連する問題