通过两个项目共享AppConfigurations.json

时间:2018-09-11 12:17:42

标签: c# configuration asp.net-core-2.0

在Visual Studio解决方案中,我具有以下项目结构。有两个项目,其中一个是.net-core 2.0控制台应用程序,另一个是.net-core 2.0 mvc应用程序。您可以在下图中看到正确的解决方案结构。

enter image description here

您会看到,项目DT_TestSystem中有一个名为SharedAppConfiguration.json的文件,该文件保存了两个项目的基本设置,当然,在项目DT_TestSystem中访问此文件非常容易。通过以下代码:

public Startup(IConfiguration configuration, IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("SharedAppConfiguration.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables();
        Configuration = builder.Build();
    }

在那之后,我在项目DT_TestSystem中进行了一些依赖注入,并且我可以使用文件的信息。编译后,项目DT_TestSystem会将其文件发布到bin \ Release \ netcoreapp2.0 \ publish。

但是现在我有一个问题,我也想通过DataCollector Project访问SharedAppConfiguration.json。但是他们不共享此文件。我如何访问文件或如何共享“ SharedAppConfigurations.json”。

可以将现有项目链接为如下图所示的链接。但是会发生什么,如果我正在使用它,我又该如何发布解决方案?以及如何在Data Collector Project中使用它?该文件不是真的存在... enter image description here

我在DataCollector Project中尝试过类似的方法。但这需要一个硬编码的路径,对吗?这样的问题有解决方案吗?

Console.WriteLine("Load Shared Configuration...");
        var myBasePath = AppDomain.CurrentDomain.BaseDirectory;
        var settingPath = Path.Combine(myBasePath,"NO IDEA WHAT TO DO...");
        var builder = new ConfigurationBuilder()
            .SetBasePath(settingPath)
            .AddJsonFile("SharedAppConfiguration.json",optional:false, reloadOnChange: true);
        Configuration = builder.Build();

感谢帮助。

0 个答案:

没有答案