当前位置 : 主页 > 网络编程 > ASP >

asp.net-core-mvc – asp.net核心,包括共享内容文件

来源:互联网 收集:自由互联 发布时间:2021-06-24
我有一个共享项目项目,其中包含一些内容文件,如 JSON等. 我有许多ASP.Net核心项目,我想包含/分享一些这些JSON文件.使用VS中的“链接到文件”选项非常简单,但它在ASP.Net核心项目中不可用
我有一个共享项目项目,其中包含一些内容文件,如 JSON等.

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

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

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

任何想法都被感激之情?

谢谢

多纳尔

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

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

> ln -s ../Common.Includes common

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

> mklink /J common ..\Common.Includes

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

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

在RC1中还有像’prepare’或’prerestore’这样的事件,这更适合这个,但是现在they’re gone和dotnet只支持’precompile’和’postcompile’.

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

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

然后从“脚本”中引用它:

"scripts": {
    "precompile": "init.ps1"
}
网友评论