我的应用程序使用 appsettings.json 进行某些设置。如果 appsettings.local.json 存在,则应覆盖 appsettings.json 中包含的任何设置。到目前为止,没有问题。
但我使用 git 进行版本控制。显然,我不希望其他用户删除我的本地设置。所以我 git 忽略 appsettings.json。
此外,解决方案中有很多项目。他们共享相同的设置。因此,解决方案级别有一个 appsettings.json,所有项目都将其作为链接包含在内。
仍然很好,除了一件事。为了可用,我必须将 appsettings.local.json 复制到输出目录。但它不应该在版本控制中。因此,如果有人克隆新的解决方案,他们将不会拥有它。这应该没问题,但事实并非如此。 VS。说“这个文件应该被链接,但它到底在哪里?”构建错误。
我该如何处理呢?
对于 v2,这非常简单。
- Add an
appsettings.local.json
到您的项目(它应该嵌套在主项目下方)appsettings.json
file).
- Add
appsettings.local.json
给你的.gitignore
-
In your startup.cs
在构造函数中执行以下操作:
public class Startup
{
public IConfigurationRoot Configuration { get; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) //load base settings
.AddJsonFile("appsettings.local.json", optional: true, reloadOnChange: true) //load local settings
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) //load environment settings
.AddEnvironmentVariables();
Configuration = builder.Build();
}
/*
* rest of your startup.cs
*/
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)