【问题标题】:MSBuild or StyleCop task to verify key in App.config file?MSBuild 或 StyleCop 任务验证 App.config 文件中的密钥?
【发布时间】:2012-05-16 19:40:04
【问题描述】:

在几个项目的App.config文件中,有一行

<add key="url" value="http://www.example.com/"/>

在每次构建时,我都希望有一个任务来验证 "url" 键是否包含文本 "http://localhost"。有没有办法做到这一点?

【问题讨论】:

  • StyleCop 无法为您执行此操作,因为它旨在分析​​ C# 源代码。

标签: msbuild msbuild-task stylecop


【解决方案1】:

我假设您有一个团队,并且您的一些团队成员无意中签入了这些配置,并将该值更改为 localhost。

如果是这种情况,为什么不为每个环境提供转换文件,您的调试配置可以将密钥设置为 localhost,而您的生产/测试/stage/qa/whatever 配置可以将其设置为 example.com 或其他内容否则。

您可能不知道 msbuild 可以转换您的配置文件。本质上,您拥有主配置文件,然后是每个环境的配置文件,其中仅包含更改的内容。在进行构建时,msbuild 将使用其他“转换”文件中的任何更改来修改主要的。

App.Config Transformation for projects which are not Web Projects in Visual Studio 2010?

您的转换文件如下所示:

<?xml version="1.0"?>

<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">    
  <appSettings>
    <add key="url" value="http://www.example.com/" xdt:Locator="Match(key)" xdt:Transform="SetAttributes"/>
  </appSettings>
</configuration>

微软链接是http://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

只需对您的项目文件稍作调整,即可在 web.configs 和 app.configs 上轻松使用它们。

【讨论】:

    【解决方案2】:

    另一种解决方案是将单元测试集成为构建的一部分,并让测试验证 web.config 中的密钥。

    转到您的构建:

    右键单击您的构建并单击编辑构建定义:

    选择流程:

    现在我们可以在这里设置失败:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多