2016-10-20 5 views
3

.NET Core CLIツールを使用して.NET Coreのプログラミングの基礎を学びました。私は、Windowsのバージョン1.0.1のための.NETのコアSDKをダウンロードし、ダウンロードページ上の簡単な指示(https://www.microsoft.com/net/core#windows)に続く:これは、コンパイルして、私のWindows 10、x64のマシン上で正常に動作完全な.NETフレームワークをターゲットとするデフォルトの.NET Coreコンソールアプリケーションを構築する際のエラー4.6.2

mkdir hwapp 
cd hwapp 
dotnet new 
dotnet restore 
dotnet run 

を。

同じアプリケーションで.NET Framework 4.6.2を対象にしようとすると、問題が発生します。私が読んだものから、私は唯一の値を持つノードを追加する必要があります「net462」「フレームワーク」ノードの下:

{ 
    "net462": {} 
} 

しかし、復元DOTNETを実行し、その後DOTNETビルドCLI、このノードを追加した後コマンドは、私は次のエラーを取得する:

Project hwapp (.NETFramework,Version=v4.6.2) will be compiled because expected outputs are missing 
Compiling hwapp for .NETFramework,Version=v4.6.2 
C:\Program Files\dotnet\dotnet.exe compile-csc @C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.rsp returned Exit Code 1 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(2,11): error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(3,11): error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(4,11): error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(5,11): error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(2,58): error CS0518: Predefined type 'System.String' is not defined or imported 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(3,54): error CS0518: Predefined type 'System.String' is not defined or imported 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(4,67): error CS0518: Predefined type 'System.String' is not defined or imported 
C:\Development\dotNet\hwapp\obj\Debug\net462\dotnet-compile.assemblyinfo.cs(5,62): error CS0518: Predefined type 'System.String' is not defined or imported 
C:\Development\dotNet\hwapp\Program.cs(1,7): error CS0246: The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 
C:\Development\dotNet\hwapp\Program.cs(5,18): error CS0518: Predefined type 'System.Object' is not defined or imported 
C:\Development\dotNet\hwapp\Program.cs(7,33): error CS0518: Predefined type 'System.String' is not defined or imported 
C:\Development\dotNet\hwapp\Program.cs(7,23): error CS0518: Predefined type 'System.Void' is not defined or imported 

Compilation failed. 
    0 Warning(s) 
    12 Error(s) 

あなたは出力から読み取ることができたよう.NET Frameworkの4.6.2を対象とする場合、コンパイラは、System名前空間を見つけることができるとは思われません。 4.6.1と4.5.2のような以前の.NET Frameworkを対象にしようとすると、同じエラーが表示されます。

System.dllのx64バージョンとmscorlib.dllのコピーを、GACからC:\ Program Files \ dotnet \ディレクトリに移動しようとしました。これにより、csc.exeプログラムは、成功。

それが参考になる場合は、以下の私のproject.jsonファイルの内容を見つけてください:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable", 
    "emitEntryPoint": true 
    }, 
    "dependencies": {}, 
    "frameworks": { 
    "net462": {}, 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.1" 
     } 
     }, 
     "imports": "dnxcore50" 
    } 
    } 
} 

任意の助けいただければ幸いです!

+0

あなたのproject.jsonはうまく動作します。 [.NET Framework 4.6.2 Developer Pack](http://getdotnet.azurewebsites.net/target-dotnet-platforms.html)がインストールされていますか? – svick

+0

.NET Framework 4.6.2 Developer Packをインストールすると問題が解決しました。ありがとう@スヴィック! – PennTx

答えて

2

.Net 4.6.2をターゲットにする場合は、.NET Framework 4.6.2 Developer Packをインストールする必要があります。

+0

この回答は、規定どおりに機能しました。 さらに問題を解決するには... .NET Coreアプリケーションが.NET Framework 4.6.2を適切にターゲットにするためにDeveloper Packをインストールする必要がある理由を詳述する文献の指示にお答えください? 私のマシンにこの.NETバージョンがすでにインストールされています。 Developer Packをインストールすると、 C:¥Program Files¥dotnet¥dotnet.exeコンパイル-csc が.NET Framework 4.6.2で動作するようになりましたか? – PennTx

+0

これはどこかに記載されているかどうかはわかりませんが、一般的に.Net Frameworkのバージョンをインストールすると、(アプリケーションの実行に使用される)ランタイムアセンブリのみが提供されます。さまざまな開発者/ターゲットパックは、(コードをコンパイルするために使用される)*参照アセンブリ*を提供します。 – svick

+0

それは理にかなっています。私はVisual Studioなしで新しいマシンを開発しようとしているので、.NET Frameworkのさまざまなバージョンに対してコードをコンパイルするためのライブラリを提供するVisual Studioを使用することで間違いが生じていたため、 – PennTx

関連する問題