2016-06-16 45 views
3

私はXUnitの最新バージョンを使用しており、these stepsに続いて、クラスライブラリ(.NET Core)プロジェクトを開始しました。.NET Core XUnitプロジェクトからの標準DLLの参照

私のソリューション全体を通して他のすべてのライブラリはだけなので、私は次のようにproject.jsonにおけるフレームワークのセクションを変更4.6.1を使用している:

{ 
    "frameworks": { 
     "net461": { 
      "dependencies": { 
       "Microsoft.NETCore.Platforms": "1.0.1-rc2-24027" 
      } 
     } 
    } 
} 

、すべてが私の解決策の罰金内部に動作します。私はテストを実行することができ、他のライブラリへの参照はすべて、461だけであっても正常に動作します。基本的には、私のソリューションではいくつかのクラスライブラリ(.NET Core)があり、私のXUnitライブラリはそれらに依存しているので、ビジュアルスタジオで参照するだけで、参照はXUnitプロジェクトのproject.jsonファイルに追加されます。他の開発者のコ​​ンピュータに

コピーのみのxUnitプロジェクト:私は次の操作を実行する必要がある場所

状況が生じました。テストを作成できるようにソースコードを編集できるようにしますが、他のすべてのライブラリ/コードにアクセスすることはできません。私は、他のすべてのDLLをランダムなフォルダにコピーし、スタンドアロンのXUnitプロジェクトからそれらを参照することができると考えました。ただし、参照しようとすると、.NETコアプロジェクトが標準のDLLを参照できないというエラーが表示されるため、これは当てはまりません。

私はこれをどのように行うことができますか?

答えて

6

ライブラリは、Nugetパッケージとして配布する必要があります。

.NETコアはNugetを介してのみ依存関係で動作します。 VS UI(「参照の追加」コマンド)を使用してリファレンスを追加しても、リファレンスはnugetパッケージとして追加されます:project.jsonファイルを開くと、ライブラリは同じ「package:version」形式で指定されます「依存関係」の項を参照)。

コードをNugetパッケージにパックするには、dotnet packコマンドを使用します。

パブリックNugetソースを使用しない場合は、Hosting Your Own Nuget Feedとすることができます。

+0

ありがとう、私は自分のカスタムフィードを作成し、nuget.exeを使用してパッケージにすべてのDLLをパックして参照しました! –

+0

.NET Core 2.0の出荷時に、ディスクから直接アセンブリを参照できるようにする必要があります。 https://github.com/dotnet/sdk/issues/120 –

+0

@JaanusVarus:それは可能ではないようです。このオプションはそこにあり、参照されているアセンブリの型に対するコンパイルは機能しますが、実行時に参照されているアセンブリはTRUSTED_PLATFORM_ASSEMBLIESに追加されていないため検出されません。後部の大きな痛み。 – Wout

関連する問題