Windows應用程式與設定檔

來源:互聯網
上載者:User
為每個應用程式提供一個設定檔已經不是什麼新鮮的想法了,在早期的Windows中,許多程式通常都提供一個副檔名為“.ini”或“.dat”之類的物件以定製化程式或為應用程式提供擴充描述。Microsoft公布.NET架構後,基於Windows的exe檔案有了一定的微妙的變化,這就是每個exe檔案在.NET架構下匹配了一個“Config”檔案,就是說,如果可執行檔的檔案名稱是“AppName.exe”,那麼,.NET會自動識別與之匹配的設定檔“AppName.exe.config”,這種副檔名為“.Config”的檔案是一個XML檔案。一個典型的設定檔如下:
<configuration>
  <appSettings>
</appSettings>
<runtime>
    <assemblyBindingxmlns=/"urn:schemas-microsoft-com:asm.v1/">
      <probingprivatePath=/"bin;usercontrol;component;doctemplate/">
      </probing>
    </assemblyBinding>
</runtime>
<!-- -->
<TangramMainAssemblyLib=/"TangramDeskManager/"
           MainAssemblyCategory=/"TangramDeskManager/"
           MainFrameAssembly=/"TangramDeskManager.Application/"
           ExternalAppCOMComponent=/"/"
           ExternalAppAssembly=/"/"
           WorkSpaceGUID=/"{9905F281-9C5D-440b-89AF-EE61D3FA548A}/"
           Tag=/"officexp/">
    <Caption>Welcome To Tangram World!</Caption>
    <WorkSpaceRunModel=/"/"></WorkSpace>
    <BackgroundType=/"html/">background.htm</Background>
    <RegistryKey=/"TangramDesigner/"StdProfileSettings=/"4/"></Registry>
    <Skin>Merlin ENI//Merlin ENI.uis</Skin>
    <VBAComponent>DocVbaServer.VbaServer.1</VBAComponent>
    <MDITabbedClientTag=/"/">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>
    <assemblyBindingxmlns=/"urn:schemas-microsoft-com:asm.v1/">
      <probingprivatePath=/"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系統的註冊表隔離以減輕註冊表的負擔,同時也為所謂的“綠色軟體”提供良好的支援。 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.