簡體   English   中英

通過project.json將內容文件復制到DNX Console應用程序的輸出目錄

[英]Copy content files to output directory of DNX Console app via project.json

我剛剛開始在VS2015中使用DNX 1.0.0-rc1-update1。 我的第一個應用程序是“控制台應用程序(包)”項目。 一切正常,除了NLog日志記錄。 我懷疑是因為NLog.config沒有被復制到輸出文件夾。 如何通過project.json告訴VS將此文件復制到輸出文件夾?

我已經嘗試添加這樣的'資源'變量,但它不起作用:

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為空。

如何調試構建過程?

與此同時,.NET Core RTM發布了。

現在,將東西復制到輸出文件夾的當前方法是使用project.jsonbuildOptions部分

你可以使用copyToOutput選項,如下所示:

之前:

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

  // more stuff
}

后:

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

  // more stuff
}

使用copyToOutputbuildOptions

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

或者對於多個文件聲明一個數組:

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

要復制目錄,請記住添加尾隨\\\\

默認情況下,包含project.json的目錄中的所有代碼文件都包含在項目中。 您可以使用project.json的include / exclude部分來控制它。

更多信息: http//docs.asp.net/en/latest/dnx/projects.html#including-excluding-files

你可以像這樣使用project.jsoncontent部分

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

現在文檔說明文件應該默認復制為內容默認值,如果*(所有文件的通配符),但是您可以在內容部分中明確說明您想要的文件。

我認為它在RC1中被打破了。 我還在尋找如何將內容文件復制到輸出文件夾,並發現這個問題與我們看到的類似。

正如@Nkosi指出的那樣, content的默認值是**/* (您可以通過他提供的文檔鏈接以及模式來查看)。

至於你的postbuild步驟,你可以通過“產生輸出”來實現它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM