如何让VS根据编译环境选择相应的配置文件
其實(shí)微軟還是蠻有創(chuàng)造力的,一個(gè)配置文件居然弄了這么多的形式,從原來的ini到現(xiàn)在的xml,總而言之讓我們這些在微軟殿堂里的程序員翹著屁股追趕。
微軟最新的配置文件實(shí)際上就是個(gè)xml文件,以后綴名.config表示,但是在VS中默認(rèn)只有一個(gè)配置文件,app.config或者web.config,有時(shí)我們想添加自己命名的配置文件卻感覺很乏力,我這篇博客就是來介紹下如何讓VS能夠按照我們的意愿使用配置文件。
使用情景:我們現(xiàn)在有兩套WCF服務(wù),一個(gè)是測(cè)試服務(wù),一個(gè)是正式服務(wù),我們想讓VS在Debug模式下選擇包含測(cè)試服務(wù)的配置文件,在Release模式下選擇包含正式服務(wù)的配置文件。
這里使用的技術(shù)是MSBuild,在VS自帶的MSDN中有詳細(xì)闡述,這項(xiàng)技術(shù)主要用于定制VS的編譯過程
本篇博客主要參考了文章http://icelava.net/forums/thread/2920.aspx,如果打不開就FQ吧!
首先新建一個(gè)WinForm項(xiàng)目,在項(xiàng)目中添加兩個(gè)配置文件app.Debug.config和app.Release.config(如果有自帶的App.config,可將其刪除),并在兩個(gè)配置文件中添加測(cè)試數(shù)據(jù)
然后打開項(xiàng)目所在文件夾,用文本編輯器打開項(xiàng)目文件,在這里我推薦Notepad++,當(dāng)然你可以根據(jù)個(gè)人習(xí)慣選擇自己喜歡的編輯器。
注意:千萬不要用寫字板打開,因?yàn)閷懽职鍟?huì)改變文件的換行符,使程序不能正確加載配置文件
打開文件最后處會(huì)看到下面一段注釋的內(nèi)容,意思很清楚就不用解釋了
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets.<Target Name="BeforeBuild"></Target><Target Name="AfterBuild"></Target>-->修改AfterBuild任務(wù)如下:
1 <Target Name="AfterBuild"> 2 <Delete Files="$(TargetDir)$(TargetFileName).config" /> 3 <Copy SourceFiles="$(ProjectDir)\app.$(Configuration).config" 4 DestinationFiles="$(TargetDir)$(TargetFileName).config" /> 5 </Target>這段代碼的意思就是在Build完成時(shí)候,刪除目標(biāo)文件夾下的xxx.config文件,并根據(jù)當(dāng)前配置環(huán)境將項(xiàng)目文件夾中對(duì)應(yīng)的config文件內(nèi)容復(fù)制至目標(biāo)文件夾,保存名稱為相應(yīng)的xxx.config。
編輯完成后保存,這是VS會(huì)提示
?
點(diǎn)擊“重新加載”即可,然后在Form1中添加測(cè)試代碼:
1 public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 label1.Text = System.Configuration.ConfigurationManager.AppSettings["ILoveSleep"]; 7 } 8 }下面是運(yùn)行結(jié)果:
Debug模式下
Release模式下
從運(yùn)行結(jié)果來看,已經(jīng)達(dá)到了預(yù)期目的,現(xiàn)在需要做的就是在app.Debug.config中添加測(cè)試服務(wù)的配置,在app.Release.config中添加正式服務(wù)的配置,當(dāng)選擇Debug模式時(shí),程序會(huì)連接測(cè)試服務(wù),Release模式時(shí),程序會(huì)連接正式服務(wù)!
MSBuild十分強(qiáng)大,用好了幾乎可以對(duì)整個(gè)VS編譯過程進(jìn)行定制,完成自己想要的任何操作!
這里是文中簡(jiǎn)單示例的源碼:WinForm.rar
轉(zhuǎn)載于:https://www.cnblogs.com/ILoveSleep/p/3181044.html
總結(jié)
以上是生活随笔為你收集整理的如何让VS根据编译环境选择相应的配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Subversion 1.7 Eclip
- 下一篇: NSIS设置桌面快捷方式的图标