Ale*_* G. 12 c# visual-studio-2015 dnx project.json
我刚刚开始在VS2015中使用DNX 1.0.0-rc1-update1.我的第一个应用程序是"控制台应用程序(包)"项目.一切正常,除了NLog日志记录.我怀疑是因为NLog.config没有被复制到输出文件夹.如何通过project.json告诉VS将此文件复制到输出文件夹?
我已经尝试添加这样的'资源'变量,但它不起作用:
project.json
...
"resource":"NLog.config",
...
Run Code Online (Sandbox Code Playgroud)
编辑1: 我正在使用dnx451,因此兼容性不是问题.
编辑2: 我将以下内容添加到project.json中
"scripts": {
"postbuild": [
"%project:Directory%/../scripts/copy_resources.bat \\\"%project:Directory%\\\" \\\"%project:Directory%/../artifacts/bin/%project:Name%/%project:Version%/dnx451\\\""
]
}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
VS的输出窗口中没有任何内容表明脚本实际上已运行.此外,log.txt为空.
如何调试构建过程?
Chr*_*cht 23
与此同时,.NET Core RTM发布了.
现在,目前的办法得到的东西复制到输出文件夹使用buildOptions部分在project.json.
copyToOutput您可以使用这样的选项:
之前:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
// more stuff
}
Run Code Online (Sandbox Code Playgroud)
后:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true,
"copyToOutput": { "includeFiles": [ "NLog.config" ] }
},
// more stuff
}
Run Code Online (Sandbox Code Playgroud)
Bjo*_*pen 10
copyToOutput在里面使用buildOptions:
{
"buildOptions": {
"copyToOutput": "NLog.config"
}
}
Run Code Online (Sandbox Code Playgroud)
或者对于多个文件声明一个数组:
{
"buildOptions": {
"copyToOutput": ["NLog.config", "testdata\\"]
}
}
Run Code Online (Sandbox Code Playgroud)
要复制目录,请记住添加尾随\\.
默认情况下,包含project.json 的目录中的所有代码文件都包含在项目中。您可以使用project.json 的包含/排除部分来控制它。
更多信息:http://docs.asp.net/en/latest/dnx/projects.html#include-exclusion-files
您可以像这样使用内容部分project.json
{
"content": [
"NLog.config"
]
}
Run Code Online (Sandbox Code Playgroud)
现在文档说,默认情况下应该将文件复制为内容默认值 if * (所有文件的通配符),但您可以通过在内容部分中明确说明所需的文件来强制执行此操作。
| 归档时间: |
|
| 查看次数: |
7514 次 |
| 最近记录: |