uri*_*rig 1 .net asp.net web-config visual-studio
考虑一组开发 ASP.net Web 应用程序的开发人员。每个开发人员都希望拥有一个私有版本的 web.config。
“私有”是指开发人员可以在任何给定时刻自由更改文件以满足他们的开发/测试需求,而不会影响其他团队成员,也不会以源代码控制结束。
如何使用 Visual Studio 2015 实现这一目标?
到目前为止,我最接近的解决方案是拥有一个“私有”解决方案配置,其中包含从源代码管理中排除的匹配Web.config 转换文件(“web.private.config”)。
但这不是一个令人满意的解决方案,因为:
一种。调试时转换不会自动运行(使用 F5)。开发人员需要记住手动运行它。
湾 转换的结果最终出现在主“web.config”文件中,该文件自然包含在源代码管理中。
我们有一个非常相似的问题,但只需要Web.config 中<appSettings> 部分的个性化版本。
在这种情况下,通过包含外部文件configSource被证明是有问题的,因为该属性完全取代了 <appSettings> 节点。因此,仍然无法为所有开发人员保留全局键/值和个人键/值。整个部分被包含的私有文件完全取代。
我们需要的是双方的全球和私人<的appSettings>。我们找到的解决方案是file属性。它允许将Web.config 设置与其他文件中的设置合并。
我们最终得到了这样的结构:
<!-- Web.config with global appSettings) -->
...
<appSettings file="Web.PERSONAL.config">
<add key="BaseUrl" value="https://projectname.dev.local" />
...
</appSettings>
...
Run Code Online (Sandbox Code Playgroud)
<!-- Web.PERSONAL.config with personal appSettings -->
<?xml version="1.0" encoding="utf-8"?>
<appSettings >
<add key="EmailSmtpUser" value="my.name@my.domain.com" />
<add key="EmailSmtpPwd" value="***" />
</appSettings >
Run Code Online (Sandbox Code Playgroud)
如果在两个文件中放置相同的密钥,Web.PERSONAL.config版本将覆盖Web.config版本。
文件Web.PERSONAL.config必须通过 .gitignore 从 Git 中排除。
请记住:
虽然configSource适用于 Web.config 中的所有节点,但该file属性仅限于 <appSettings>。
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |