web-dev-qa-db-ja.com

project.jsonを介してコンテンツファイルをDNXコンソールアプリの出力ディレクトリにコピーします

VS2015でDNX1.0.0-rc1-update1の使用を開始しました。私の最初のアプリは「コンソールアプリケーション(パッケージ)」プロジェクトです。 NLogロギングを除いて、すべてが機能します。 NLog.configが出力フォルダーにコピーされないためだと思います。 project.jsonを介してこのファイルを出力フォルダーにコピーするようにVSに指示するにはどうすればよいですか?

このような「resource」変数を追加しようとしましたが、機能しません。

project.json

...
"resource":"NLog.config",
...

編集1:私はdnx451を使用しているので、互換性は問題ではありません。

編集2:以下を追加しましたproject.json

"scripts": {
    "postbuild": [
      "%project:Directory%/../scripts/copy_resources.bat \\\"%project:Directory%\\\" \\\"%project:Directory%/../artifacts/bin/%project:Name%/%project:Version%/dnx451\\\""
    ] 
  }

copy_resources.bat

echo "Running script" >> C:\logs\log.txt
echo %1 >> C:\logs\log.txt
echo %2 >> C:\logs\log.txt

xcopy %1\NLog.config %2 /U /Y

VSの出力ウィンドウには、スクリプトが実際に実行されたことを示すものは何もありません。さらに、log.txtは空です。

ビルドプロセスをデバッグするにはどうすればよいですか?

12
Alex G.

その間に、.NET Core RTMが公開されました。

現在、出力フォルダーにコピーする方法は、project.jsonの-​​ buildOptions section を使用することです。

次のように使用できる copyToOutput オプションがあります。

前:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  // more stuff
}

後:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true,
    "copyToOutput": { "includeFiles": [ "NLog.config" ] }
  },

  // more stuff
}
23

copyToOutput内でbuildOptionsを使用します。

{
  "buildOptions": {
    "copyToOutput":  "NLog.config" 
  }
}

または、複数のファイルの場合は配列を宣言します。

{
  "buildOptions": {
    "copyToOutput":  ["NLog.config", "testdata\\"]
  }
}

ディレクトリをコピーするには、末尾に\\を追加することを忘れないでください。

10
Bjorn Reppen

デフォルトでは、project.jsonを含むディレクトリ内のすべてのコードファイルがプロジェクトに含まれています。これは、project.jsonのinclude/excludeセクションで制御できます。

詳細: http://docs.asp.net/en/latest/dnx/projects.html#include-except-files

project.jsoncontentセクションを次のように使用します

{
  "content": [
    "NLog.config"
  ]
}

ドキュメントには、*(すべてのファイルのワイルドカード)の場合、ファイルはデフォルトでコンテンツのデフォルトとしてコピーされるべきであると記載されていますが、に必要なファイルを明示的に指定することで強制できます)contentセクション。

3
Nkosi

RC1では壊れていると思います。また、コンテンツファイルを出力フォルダーにコピーする方法も探していましたが、 この問題 これは私たちが見ているものと似ていることがわかりました。

@Nkosiが指摘しているように、contentのデフォルトは**/*(彼が提供したドキュメントリンク、および スキーマ で確認できます)。

postbuildステップについては、 "出力の生成" で実行できます。

2
Stajs