如何在 ASP.NET vNext 中处理调试/发布配置转换

2024-02-29

在 ASP.NET 的早期版本中,我们很多人都使用过Web.Debug.config/Web.Release.config文件转换看起来像这样:

网页配置:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(LocalDb)\\..." />
</connectionStrings>

Web.Release.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(ReleaseDb)\\..."  xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

As per ASP.NET vNext 教程 http://www.asp.net/vnext/overview/aspnet-vnext/getting-started-with-aspnet-vnext-and-visual-studio#addclasslib您仍然可以使用 Web.config。但config.json根据同一篇文章,现在似乎是处理配置的新方法:

配置.json

{
    "Data": {
        "DefaultConnection": { 
            "ConnectionString": "Server=(localdb)\\..."
        }
    }
}

And in 启动.cs:

var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();

所以我想知道处理 json 转换的配置转换的建议方法是什么?


vNext 使用新的配置系统,您可以在其中通过代码读取环境变量。因此,在这种情况下,您将检查是否存在适当的环境变量,并通过代码包含相应的 JSON。

例如,您可以创建 qa.json 和 prod.json。设置一个环境变量,例如“ENV”,它指向相应环境中的“qa”和“prod”。然后,您可以有条件地添加适当的 JSON。

代码可能如下所示:

1) default.json 包含所有默认内容。

2) qa.json 和 prod.json 包含必要的覆盖。

3)由于qa.json和prod.json来得晚,所以他们会赢。如果default.json和qa.json中有“setting1”,则会自动拾取qa.json中的“setting1”

 var configuration = new Configuration()
                     .AddJsonFile("default.json")
                     .AddEnvironmentVariables(); 

 var envSpecificJson = configuration.Get("ENV") + ".json";
 configuration.AddJsonFile(envSpecificJson);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET vNext 中处理调试/发布配置转换 的相关文章

随机推荐

  • 没有http服务器的Socket.IO?

    我目前正在使用 Nodejs 的 Socket IO 在服务器和一些客户端之间共享一些实时信息 客户端应该只与服务器通信 而不是彼此通信 在 Windows 上一切都很好 我可以共享信息 但当它把东西放到 Linux vps 上时 我遇到了
  • “在负可变长度后行中使用 \G 来限制后行回溯多远”的示例

    在很棒的正则表达式模块的 pypi 页面中 https pypi python org pypi regex https pypi python org pypi regex 据说 G 可以 在负可变长度后向中使用 以限制后向回溯的距离 非
  • 如何在有或没有 Pig 的情况下使用 Cassandra 的 Map Reduce?

    有人可以解释 MapReduce 如何与 Cassandra 6 配合使用吗 我已经阅读了字数统计示例 但我不太明白 Cassandra 端与 客户端 端发生的情况 https svn apache org repos asf cassan
  • 创建已包含 Nuget 包参考的 Visual Studio 项目模板?

    我想创建一个 Visual Studio 2010 项目模板 它本质上是一个 ASP net 3 5 Webforms 应用程序 但是 我想自动添加 NuGet 包引用 如果需要 我可以将实际的 nupkg 与模板捆绑在一起 但我想知道是否
  • WordPress:“post_name”的 WP_Query 搜索条件

    我正在使用 WP Query 非常标准 一切都很好 但是 我需要进行一项特定的修改 如果用户在 URL 中输入特定的帖子名称 则搜索将仅返回与该 post name 值匹配的帖子 请参阅下面的代码 其中包含有关特定行不起作用的注释
  • MySQL:启用加载数据本地INFILE

    我在 Ubuntu 12 LTS 上运行 Mysql 5 5 我应该如何在 my cnf 中启用 LOAD DATA LOCAL INFILE 我已经尝试在配置中的各个位置添加 local infile 但我仍然收到 此 MySQL 版本不
  • Windows 窗体:进度栏无响应

    我有一个小应用程序来转换多种文件格式 其中一个主窗口窗体包含几个文本框 按钮等 我有另一个 文档 类 它处理所有实际的转换工作 我的窗体基本上迭代所有文件 并调用适当的 Document 方法来转换文件 然而 当这种情况发生时 表单会停止响
  • 从类访问私有模块变量

    我正在尝试理解 python 作用域规则 为此 我尝试从同一模块中的类访问 非常私有 变量 bar bar bar underscore bar double underscore def foo print bar print bar p
  • Google 地图 - 自动完成和方向 API - 触发下拉列表的 onchange() ?

    我有谷歌地图和两个输入 它们都使用自动完成功能 如下所示 first input autocomplete var input1 document getElementById start var autocomplete1 new goo
  • 给定单词相似度推断句子相似度

    假设我对两个句子中的每对单词都有一个单词相似度得分 那么根据这些分数确定整体句子相似度的好方法是什么 单词分数是使用表示每个单词的向量的余弦相似度来计算的 现在我有了单独的单词分数 将单独的单词分数相加并除以两个句子的总字数来获得两个句子的
  • android 片段在方向改变时创建了两次

    我遇到了这个奇怪的问题 我的列表片段被创建了两次 一次是在父活动上调用 super oncreate 时 一次是在同一父活动上调用 setContentView 时 这是一个简单的应用程序 我使用不同的纵向和横向布局 这是主要活动 priv
  • 崩溃的 HDFS 客户端 - 如何关闭剩余的打开文件?

    我的 Hadoop 应用程序遇到一些问题 每当我的客户端在未关闭文件的情况下退出 例如由于崩溃 时 Hadoop 中就会有打开的文件从未关闭 当我尝试重新启动客户端时 重新打开这些文件以附加数据时会失败 请参阅下面的异常消息 有没有一种好方
  • jsFiddle 中的 AJAX

    如何模拟 jQuery get http api jquery com jQuery get 在 jsFiddle 中加载来自不同域的数据 This won t work in jsFiddle get http www google co
  • 如何在 Git 中记录 Web 项目的发布历史记录?

    我正在开发一个经常合并和发布到生产环境的网络项目 我希望存储库包含曾经推送到生产服务器上的所有内容的完整记录 主要是这样我可以分析三周前的错误日志条目 准确了解当时生产中的代码 我无法使用release这样做是因为在 Git 中 没有特定分
  • Spring MVC 可以用来在 Swing 应用程序中实现 MVC 模式吗?

    我想知道是否Spring MVC可以用来实现MVC模式Java Swing应用 我做了一些研究 发现 Spring MVC 可用于 Web 开发 Spring MVC 有什么方法可以与 Swing 应用程序一起使用吗 并不真地 正如你所说
  • 学说 DQL 正确加入?

    是否可以进行 RIGHT OUTER JOIN原则 2 DQL http www doctrine project org docs orm 2 0 en reference dql doctrine query language html
  • 使用 PHP 在 MongoDB 中插入数据

    我在php 5 6 using WAMP想要使用 PHP 将文档插入 MongoDB 我是这样做的
  • 安装 RVM(Ruby Version Manager)的关键问题

    我正在尝试在我的 CentOS 6 6 机器上安装 Ruby Version Manager RVM 我按照主页上的说明进行操作https rvm io rvm install https rvm io rvm install 当我运行此命
  • 如何从 dart 中的字符串中仅删除符号

    我想从字符串中删除所有特殊符号 并且字符串中只有单词 我尝试了这个 但它只给出相同的输出 main String s Hello world i am foo print s replaceAll new RegExp W 输出 Hello
  • 如何在 ASP.NET vNext 中处理调试/发布配置转换

    在 ASP NET 的早期版本中 我们很多人都使用过Web Debug config Web Release config文件转换看起来像这样 网页配置