无法读取dotnet核心中链接的appsettings.json文件的值

在aspnetcore 2.0项目中,我试图在我的Web应用程序和我的几个xunit测试项目中设置一个共享的appsettings.json文件。

首先,当我将appsettings.json“定期”添加到我的项目中时,一切正常。 但是,当我尝试从其他路径添加单个引用/链接文件时,在运行时期间不会读取这些值。

要设置它,为每个项目我将链接文件添加到.csproj:

  appsettings.json Always   

在每个构建中,我可以validation它是否输出到/bin/Debug/netcoreapp2.0目录:

输出目录的屏幕截图

问题是,当通过我的webapi的默认启动或在测试中读取它时,设置值始终为null。 我正在使用强类型配置。 在webapi项目中,我正在使用带有aspnetcore 2.0约定的WebHost.CreateDefaultBuilder() (在引擎盖上查看hostingEnvironment.EnvironmentName ,dotPeek告诉我)。

但是在测试项目的情况下,也会发生同样的情况。 在我的全局测试夹具中,以下示例可以解释所有这些:

 var builder = new ConfigurationBuilder() // .SetBasePath(???) .AddJsonFile("appsettings.json"); var configuration = builder.Build(); var settings = new FooSettings(); configuration.GetSection("FooSettings").Bind(settings); if (settings == null) throw new Exception("Could not find or parse 'appsettings.json'"); // The problem: always fails on this check if (string.IsNullOrEmpty(settings.Bar)) throw new Exception("Could not find or parse 'FooSettings'"); 

在上面的示例中的最后一行注释了该问题。 再次,当我直接将appsettings.json文件添加到项目根目录时,它完美地工作,而不是将其添加为共享文件夹的链接引用。 我假设我必须以不同方式更改.csproj配置或使用不同的.SetBasePath(???) 。 但对于我来说,我正在努力实现它。

问题:如何在所有项目中正确读取链接的 appsettings文件?

NB我发现了其他几个post,但找不到任何匹配的答案,特别是dotnetcore。