![](/img/trans.png)
[英]Debugging C# Console Application in VSCode using DNU/DNX and project.json
[英]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.json
的buildOptions
部分 。
你可以使用copyToOutput
選項,如下所示:
之前:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
// more stuff
}
后:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true,
"copyToOutput": { "includeFiles": [ "NLog.config" ] }
},
// more stuff
}
使用copyToOutput
內buildOptions
:
{
"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.json
的content部分
{
"content": [
"NLog.config"
]
}
現在文檔說明文件應該默認復制為內容默認值,如果*(所有文件的通配符),但是您可以在內容部分中明確說明您想要的文件。
我認為它在RC1中被打破了。 我還在尋找如何將內容文件復制到輸出文件夾,並發現這個問題與我們看到的類似。
正如@Nkosi指出的那樣, content
的默認值是**/*
(您可以通過他提供的文檔鏈接以及模式來查看)。
至於你的postbuild
步驟,你可以通過“產生輸出”來實現它 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.