一些开发人员正在开发一个项目,每个项目都在Web.Config中有自己的连接字符串。 每隔一段时间(通常是几个小时!!)开发人员就会忘记将web.config排除在提交之外,很快每个人都必须经历一个错误的循环,发现它是因为连接字符串错误,并纠正它。 原因是当人们选择提交更改时,VS会将所有更改添加到提交中。他们可以排除它,但他们忘了。
有没有办法从提交默认中排除文件? 请注意,这与从存储库中排除文件不同,可以在.gitignore中完成。
答案 0 :(得分:14)
确定。事实证明,原始问题的解决方案是可能的。完整指南由Scott Hanselman撰写this post。 基本思想是您可以将部分配置数据放在另一个文件中,然后从web.config引用该文件。该文件可以像往常一样从.gitignore中的源代码控制中排除。
<appSettings file="Web.SECRETS.config">
<add key="name" value="someValue" />
</appSettings>
答案 1 :(得分:1)
使用Visual Studio无法做到这一点。
你有两个选择...... 或者,使用更好的git gui来管理暂存区域:Gitextensions或sourcetree。
或者,这是通常接受的解决方案,使用git忽略的另一个用户配置文件(所以从不会意外提交)但是如果存在则首先读取配置。真的值得小小的发展...
答案 2 :(得分:1)
您可以将连接字符串保存在Windows注册表中。这样,您可以为不同的机器维护不同的注册表值(例如:如果测试服务器和生产服务器使用了不同的数据库名称)。
答案 3 :(得分:0)
您的问题有更好的解决方案。您可以在任何.NET应用程序(旧版本的ASP.NET,控制台应用程序等)中轻松自己创建类似于ASP.NET 5的配置:
http://dusted.codes/aspnet-5-like-configuration-in-regular-dotnet-applications