asp.net核心并包含共享内容文件

时间:2016-07-21 16:41:45

标签: asp.net-core-mvc asp.net-core-1.0

我有一个共享项目项目,其中包含一些内容文件,如JSON等。

我有许多ASP.Net核心项目,我想包含/分享其中一些JSON文件。使用VS中的“链接到文件”选项非常简单,但它在ASP.Net核心项目中不可用。

我尝试过使用buildOptions / copyToOutput,如下所示,但这似乎不起作用,并且在构建过程中没有记录错误或警告。

"copyToOutput": {
    "include": [ "../Common.Includes/mysettings*.json" ] }

任何想法都被感激地接受了?

由于

敦尔

1 个答案:

答案 0 :(得分:0)

copyToOutput设置适用于我(至少在Windows上为dotnet 1.0.0-preview3-003171)。但请注意,copyToOutput is not transitive - 表示如果文件是在项目A 中复制的,则不会将它们复制到引用项目B 中的输出项目A

另一种方法是使用底层文件系统并创建指向共享文件或文件夹的符号链接。在Linux上它将是:

> ln -s ../Common.Includes common

Windows具有类似(但不太常用)的功能:

> mklink /J common ..\Common.Includes

然后,您可以配置dotnet以在特定事件上运行它:

"scripts": {
    "precompile": "cmd /C mklink /J common ..\\Common.Includes"
}

在RC1中还有像'准备''prerestore'这样的事件,它们更适合这个,但是现在they're gone和{ {1}}仅支持'预编译''后编译'

将此命令与一些逻辑一起放入单独的脚本以检查链接是否已存在会更好。在Windows上,我会创建dotnet Powershell脚本:

init.ps1

然后从“scripts”

引用它
if (!(Test-Path "common")) {
    cmd /C mklink /J "common" "..\Common.Includes"
}