Windows应用程序与配置文件

 
Windows 应用程序与配置文件
         为每个应用程序提供一个配置文件已经不是什么新鲜的想法了,在早期的Windows中,许多程序通常都提供一个扩展名为“.ini”或“.dat”之类的物件以定制化程序或为应用程序提供扩展描述。Microsoft公布.NET框架后,基于Windows的exe文件有了一定的微妙的变化,这就是每个exe文件在.NET框架下匹配了一个“Config”文件,就是说,如果可执行文件的文件名是“AppName.exe”,那么,.NET会自动识别与之匹配的配置文件“AppName.exe.config”,这种扩展名为“.Config”的文件是一个XML文件。一个典型的配置文件如下:
< configuration >
  < appSettings >
 </ appSettings >
 < runtime >
    < assemblyBinding xmlns = "urn:schemas-microsoft-com:asm.v1">
      < probing privatePath = "bin;usercontrol;component;doctemplate">
      </ probing >
    </ assemblyBinding >
 </ runtime >
 <!-- -->
 < Tangram MainAssemblyLib = "TangramDeskManager"
           MainAssemblyCategory = "TangramDeskManager"
           MainFrameAssembly = "TangramDeskManager.Application"
           ExternalAppCOMComponent = ""
           ExternalAppAssembly = ""
           WorkSpaceGUID = "{9905F281-9C5D-440b-89AF-EE61D3FA548A}"
           Tag = "officexp">
    < Caption > Welcome To Tangram World!</Caption>
    < WorkSpace RunModel = ""></WorkSpace>
    < Background Type = "html">background.htm</Background>
    < Registry Key = "TangramDesigner"StdProfileSettings="4"></Registry>
    < Skin > Merlin ENI/Merlin ENI.uis</Skin>
    < VBAComponent > DocVbaServer.VbaServer.1</VBAComponent>
    < MDITabbedClient Tag = "">TangramDeskManager.MDIClientImpl.1</MDITabbedClient>
    < TangramToolBarID > TangramBarManager.BarManager.1</TangramToolBarID>
    < TangramControlBarID > TangramLiteControlBarD.TangramLiteBar.1</TangramControlBarID>
    < AppPlugin >
      <!-- Add Application Plugin here: <Plugin>Test.plug</Plugin> -->
    </ AppPlugin >
 </ Tangram >
</ configuration >
在.NET环境下,有一组API专门处理这类配置文件,而且,典型的.NET应用,例如Asp.net的宿主环境的关键配置对配置文件的依赖性极大,可以说,配置文件在局部意义上相当于一个“局部”注册表。针对.NET程序而言,由于.NET组件不需要再注册表中注册,因此,一个.NET程序如何搜索到一个具体的组件就显得十分重要,在配置文件中,包含如下节点:
 < runtime >
    < assemblyBinding xmlns = "urn:schemas-microsoft-com:asm.v1">
      < probing privatePath = "bin;usercontrol;component;doctemplate">
      </ probing >
    </ assemblyBinding >
 </ runtime >
在这个节点中,可以得到“ privatePath = "bin;usercontrol;component;doctemplate"”,这个字符串是用“;”分割的一系列“子目录”名,按照.NET框架的实现,如果开发者在所开发的程序所在的目录下创建这个字符串标示的每个子目录,那么,当这个程序需要.NET组件时,就会在这些“本地”目录中寻找。
         事实上,即使与.NET相对无关的Win32或Win64程序也可以充分利用这个默认的配置文件,这样做的好处是,当你的系统需要.NET支持时,可以自然的利用.NET提供的“好处”,我们会在以后的文章中介绍如何开发一个真正的Win32程序,使得在需要的时候,这类Win32程序可以支持.NET组件,典型的这类Win32系统是Microsoft Internet Explorer以及Microsoft Office等应用系统,这类系统的基础框架都是Win32的,但均可以宿主.NET引擎。 此外,应用XML读写技术,这类配置文件可以使得应用系统与Windows系统的注册表隔离以减轻注册表的负担,同时也为所谓的“绿色软件”提供良好的支持。
 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值