在Visual Studio解决方案中,我具有以下项目结构。有两个项目,其中一个是.net-core 2.0控制台应用程序,另一个是.net-core 2.0 mvc应用程序。您可以在下图中看到正确的解决方案结构。
您会看到,项目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中使用它?该文件不是真的存在...
我在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();
感谢帮助。