2016-07-19 6 views
0

最も簡単な方法は、再現するステップを提供することです。リリースビット(VS 2015のアップデート3および.NETのコア1.0)を使用してフルフレームワークプロジェクトからコアフレームワークプロジェクトへのプロジェクト参照で名前空間が認識されない

、次のように2つのプロジェクトとソリューションを作成:

  1. .NETコアクラスライブラリを作成します。
  2. project.jsonで "netstandard1.6"を "netstandard1.4"に変更してください。
  3. フルフレームワークコンソールアプリケーションを作成します。
  4. プロジェクトプロパティのターゲットフレームワークを「4.6.1」に変更します。

このバージョンは、両方とも同じ.NETプラットフォーム標準に投影されます。

  1. コンソールアプリケーションから、クラスライブラリプロジェクトへのプロジェクト参照を追加します。コンソールアプリケーションのコードで

  2. は、例えば、クラスライブラリプロジェクトでクラスを参照:

    型または名前空間名 ':

    static void Main(string[] args) 
    { 
        var x = new ClassLibrary1.Class1(); 
    } 
    

は、次のエラーメッセージを生成しますClassLibrary1 'が見つかりませんでした(使用するディレクティブまたはアセンブリ参照がありません)

+0

project.jsonでは、「フレームワーク」を「net461」に設定しましたか? – leetibbett

+0

@leetibbett:いいえ、 "netstandard1.4"をターゲットにしています。これは[compatible](https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md#mapping)にする必要があります。プラットフォームベースの標準プラットフォーム)をサポートしています。 – gxclarke

+0

CoreがFullアセンブリを参照できるとは思いません。その名前のようなもの。コアはフルフレームワークのサブセットです... – Aron

答えて

1

が見えます参照。あなたがコードをコンパイルし、特にdllを参照するなら、それはうまくいくはずです。これは長さで議論されましたhere

私が知る限り、xprojからcsprojへの変換を待っているので、問題を解決できます。

-1

このようにそれを試してみてください。

static void Main(string[] args) 
    { 
     ClassLibrary1.Class1 cls1 =new ClassLibrary1.Class1() 
    var x = cls1.yourmethod; 

    //or do it like this 
     var x = ClassLibrary1.Class1.yourmethod; 

    } 

この

public void yourmethod() 
{ 
    //Code here 
} 

はそれが役に立てば幸いようにpublicに設定yourmethodことを確認してください...これはxprojプロジェクトの問題であるように

+1

申し訳ありませんが、これはC#の構文に関する質問ではありません。この問題は、.net完全プロジェクトと.netコアプロジェクトの互換性に関する大きな問題です。参照プロジェクトのオブジェクトはインテリセンスでは解決されず、ビルド時には認識されません。問題を再現する手順を試してみることができます。依存関係がインストールされている場合は、ほんの数分かかります。 – gxclarke

関連する問題