15

私のproject.jsonファイルには、クラス ライブラリ プロジェクトを NuGet パッケージにビルドするために使用している次のスクリプトがあります。Debug NuGet パッケージをビルドしたくありません。デバッグ モードでのビルド時間を短縮するために、ソリューション構成がリリース モードに設定されている場合にのみ、このスクリプトを実行するように制限するにはどうすればよいですか?

または、好奇心の問題として、「リリース」がハードコーディングされないように、ソリューション構成を以下のコマンドに渡すにはどうすればよいですか。

"scripts": {
  "postcompile": [
    "dotnet pack --no-build --configuration Release"
  ]
}
4

2 に答える 2

19

を使用%compile:Configuration%して、現在の構成を取得できます。およびスクリプトで使用できる変数のリストを次に示します。precompilepostcompile

于 2016-06-02T17:17:29.533 に答える
5

構成に基づいて nuget パッケージの作成を実際に制限するには、プロジェクトのルートに保存するこの makeNuget.cmd ファイルのように、それをスクリプトに渡す必要があります。

@Echo off
IF "%1" == "%2" dotnet pack --no-build --configuration %1 -o ../%3

次に、私の project.json には、次のものがあります。

  "scripts": {        
    "postcompile": [
      "makeNuget.cmd %compile:Configuration% Release \\packages\\%project:Name%"
    ]
  }

これにより、nuget パッケージが作成され、ソリューション レベルの packages/[プロジェクト名] フォルダーに配置されます (ただし、ソリューションのレイアウトによっては、-o パラメーターで相対フォルダー参照を調整する必要がある場合があります)。また、.cmd は必要ありません。デフォルトでは、Windows では .cmd が、その他の環境では .sh が推測されます。

また、スクリプトが汎用的で、「リリース」構成として選択した構成名に関係なく使用できるように、ターゲット構成をパラメーターにしました。

于 2016-07-12T21:52:07.703 に答える