12

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

このような「リソース」変数を​​追加しようとしましたが、機能しません:

プロジェクト.json

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

編集 1: dnx451 を使用しているため、互換性は問題になりません。

EDIT 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 は空です。

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

4

4 に答える 4

3

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

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

このようなコンテンツセクションを使用しますproject.json

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

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

于 2015-12-28T00:10:40.497 に答える
2

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

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

あなたのステップに関しては、 「出力を生成する」postbuildことでそれを実現できます。

于 2016-03-07T01:21:05.073 に答える