4

現在、クラス ライブラリ プロジェクトを DNX (RC1) から dotnet cli (RC2) に移行中です。以前、プロジェクトは .NET v4.5.1 フレームワーク ライブラリを参照していました。project.jsonファイルは次のようになります。

  "frameworks": {
    "net451": {
      "frameworkAssemblies": {
        "System.Runtime": "4.0.10.0",
        "System.Web": "4.0.0.0",
        "System.DirectoryServices": "4.0.0.0",
        "System.DirectoryServices.AccountManagement": "4.0.0.0",
        "System.ServiceModel": "4.0.0.0",
        "System.ServiceModel.Security": "4.0.0.0"
      }
    }
  }

私の知る限り (間違っている可能性もあります)、DNX とは異なり、新しい dotnet Cli は .NET 4.5.1 をサポートしておらず、代わりに .NET Standard をサポートしています。

問題は、.NET Standard に必要なすべてのライブラリがないことです。.NET 4.5.1 フレームワーク ライブラリを参照できるようにするには、何を変更する必要がありますか? imports ステートメントについて読みましたが、機能しません。これが私がこれまでに持っているものです(更新)

  "frameworks": {
    "net451": {
      "frameworkAssemblies": {
        "System.Runtime": "4.0.10.0",
        "System.Web": "4.0.0.0",
        "System.DirectoryServices": "4.0.0.0",
        "System.DirectoryServices.AccountManagement": "4.0.0.0",
        "System.ServiceModel": "4.0.0.0",
        "System.ServiceModel.Security": "4.0.0.0"
      }
    },
    "netstandard1.5": {
      "imports": [ "dnxcore50", "portable-net451+win8" ]
    }
  }

次のようなエラーが表示されます。ParallelQuery を参照できません

他に何をする必要があるのか​​ 少し迷っています...何かアイデアはありますか?

4

3 に答える 3

2

dotnetサポートしますnet451と の両方を持つアプリケーションの例を次に示します。net451netstandard

アプリが RC1 のフル デスクトップで実行されていた場合、RC2 のフル デスクトップに移行しても問題はありません。

于 2016-05-19T00:30:25.447 に答える
1

netcoreapp1.0の代わりに で 転がしてみてくださいnetstandard1.5

新しい RC2 テンプレートは、次のフレームワーク要素を生成しますproject.json(デフォルト):

"frameworks": {
  "netcoreapp1.0": {
    "imports": [
      "dotnet5.6",
      "dnxcore50",
      "portable-net45+win8"
    ]
  }
},

これについてはGitHubで少し議論があります。リッチランダーを引用するには:

  • netstandard -> NETStandard.Library (これはすべての .NET で動作することが期待されます
  • netstandardapp -> NETStandard.App (NETStandard.Library + アプリ ホストと同じ)
  • netcoreapp -> Microsoft.NETCore.App (これは .NET Core ベースのインストールです)
于 2016-05-19T16:50:17.960 に答える
0

GitHubの.NET Platform Standard ドキュメントを確認してください。

ターゲット モニカーはnetstandard1.5.NET 4.6.2 を対象としているため、.NET 4.5.1 プロジェクトでは実行できません。

.NET 4.5.1 以降を対象とする正しいモニカはnetstandard1.2.

本質的に、ターゲット モニカは、どのフレームワークが最もサポートされていないかを示します。サポートされているフレームワークが少ないほど、条件付きプリプロセッサ ディレクティブを必要とせずに、単一のモニカーでターゲットにできるフレームワークが多くなります。

ただし、ターゲット モニカが低いほど、利用できない新しい機能が少なくなります (つまりTask.CompletedTask)。

古いフレームワークをターゲットにする必要があり、新しい機能を使用したい場合は、複数のターゲットを使用する必要があります。つまりnetstandard1.2、古い APInetstandard1.3を使用し、.NET 4.6+ Api を使用し、条件付きプリプロセッサ ディレクティブを使用して、特定のターゲットで新しい Api 呼び出しを使用する必要があります。 .

于 2016-05-19T07:10:20.180 に答える