使用配置文件配置应用

注释

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

.NET Framework 使开发人员和管理员能够控制 应用程序在配置文件中运行的方式和灵活性。 配置文件是可以根据需要更改的 XML 文件。 管理员可以控制应用程序可以访问的受保护资源、应用程序将使用的程序集版本以及远程应用程序和对象所在的位置。 开发人员可以在配置文件中放置设置,无需每次更改设置时重新编译应用程序。 本部分介绍可以配置的内容以及配置应用程序可能很有用的原因。

注释

托管代码可以使用命名空间中的 System.Configuration 类从配置文件读取设置,但不能将设置写入这些文件。

本文介绍配置文件的语法,并提供有关三种类型的配置文件的信息:计算机、应用程序和安全性。

配置文件格式

配置文件包含元素,这些元素是设置配置信息的逻辑数据结构。 在配置文件中,使用标签标记元素的开始和结束。 例如,该<runtime>元素由<runtime>子元素</runtime>组成。 空元素将编写为 <runtime/><runtime></runtime>

与所有 XML 文件一样,配置文件中的语法区分大小写。

使用预定义属性指定配置设置,这些属性是元素开始标记内的名称/值对。 下面的示例指定元素的两个属性(versionhref<codeBase> ,该属性指定运行时可以定位程序集的位置(有关详细信息,请参阅 指定程序集的位置)。

<codeBase version="2.0.0.0"
          href="http://www.litwareinc.com/myAssembly.dll"/>

计算机配置文件

计算机配置文件 Machine.config包含应用于整个计算机的设置。 此文件位于 %运行时安装路径%\Config 目录。 Machine.config 包含整个计算机范围内的程序集绑定、内置远程处理信道和 ASP.NET 的配置设置。

配置系统首先在计算机配置文件 <中查找 appSettings> 元素 和其他开发人员可能定义的配置部分。 然后,它会在应用程序配置文件中查找。 若要使计算机配置文件可管理,最好将这些设置放在应用程序配置文件中。 但是,将设置放入计算机配置文件可以使系统更易于维护。 例如,如果你有客户端和服务器应用程序都使用的第三方组件,则更容易将该组件的设置放在一个位置。 在这种情况下,计算机配置文件是设置的适当位置,因此在两个不同的文件中没有相同的设置。

注释

使用 XCOPY 部署应用程序不会复制计算机配置文件中的设置。

有关公共语言运行时如何使用计算机配置文件进行程序集绑定的详细信息,请参阅 运行时如何定位程序集

应用程序配置文件

应用程序配置文件包含特定于应用的设置。 该文件包含公共语言运行时读取的配置设置(如程序集绑定策略、远程处理对象等)以及应用可以读取的设置。

应用程序配置文件的名称和位置取决于应用的主机,可以是下列项之一:

  • 可执行文件承载的应用。

    这些应用有两个配置文件:一个源配置文件,在开发过程中由开发人员修改,以及随应用一起分发的输出文件。

    默认情况下,源配置文件的名称 App.config。在 Visual Studio 中创建 .NET Framework 项目时, 会自动将App.config 文件添加到项目中。 还可以通过选择“ 文件>新建文件”手动添加文件。 将 App.config 文件放在项目目录中,并将其 “复制到输出目录 ”属性设置为 “始终复制 ”或“ 复制”(如果更新)。

    若要创建随应用一起部署的输出配置文件,Visual Studio 会将源配置文件复制到已编译程序集所在的目录。 此文件名为 <yourappname>.exe.config。例如,名为 myApp.exe 的应用具有名为 myApp.exe.config的 输出配置文件。

    在某些情况下,Visual Studio 可能会修改输出配置文件。 有关详细信息,请参阅 应用级别的重定向版本

  • ASP.NET 托管的应用。

    有关 ASP.NET 配置文件的详细信息,请参阅 ASP.NET 配置设置

安全配置文件

安全配置文件包含与策略级别关联的代码组层次结构和权限集的相关信息。 强烈建议使用 代码访问安全策略工具(Caspol.exe) 修改安全策略,以确保策略更改不会损坏安全配置文件。

注释

从 .NET Framework 4 开始,仅当安全策略已更改时,安全配置文件才存在。

安全配置文件位于以下位置:

  • 企业策略配置文件:%runtime-install-path%\Config\Enterprisesec.config

  • 计算机策略配置文件:%runtime-install-path%\Config\Security.config

  • 用户策略配置文件:%USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

另请参阅