Windows操作系統(tǒng)中的Path環(huán)境變量:
??當系統(tǒng)運行一個程序而沒有告訴它程序所在的完整路徑時社裆,系統(tǒng)除了在當前目錄下尋找此程序外泳秀,還會到Path中指定的路徑去找嗜傅。
??為了將編譯生成的指定后綴的文件檩赢,存放到指定的文件夾中,在程序運行之初(即程序在調(diào)用所需DLL等文件前)偶房,將指定的文件夾路徑追加到專用路徑列表中棕洋。如此一來乒融,程序在調(diào)用相應(yīng)的DLL等文件時摄悯,如果在其它文件中射众,沒有找到需要的DLL文件時晃财,會自動到剛才新添加到專用路徑中去查找,如果查找不到程序就會出錯断盛。
??根據(jù)程序的這個特點钢猛,可以在項目屬性的“生成事件”中添加相應(yīng)的命令(對一些宏的利用、環(huán)境變量設(shè)置及DOS命令的組合)贩绕,將編譯生成的指定后綴的文件,存放到指定的文件夾中淑倾。這樣使程序生成文件的存放整潔征椒。
internal static class Program {
/// <summary>
/// 應(yīng)用程序的主入口點。
/// </summary>
[STAThread]
private static void Main() {
#pragma warning disable 0618 //關(guān)閉此警告信息提示
//將指定的目錄名追加到專用路徑列表碍讨。
AppDomain.CurrentDomain.AppendPrivatePath(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "mssql"));
#pragma warning restore 0681
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmLogin());
}
}
??然后勃黍,找到項目“屬性”的“生成事件”中晕讲,進行下面的宏、環(huán)境變量設(shè)置及DOS命令組合處理語句輸入:
rd libs /s /q //在程序運行目錄下刪除libs目錄及目錄下子目錄與文件锻梳,不要求確認信息
md libs //在程序運行目錄下創(chuàng)建libs目錄
del *.rar /q //在程序運行目錄下刪除后綴為.rar的文件疑枯,不要求確認
del *.zip /q //在程序運行目錄下刪除后綴為.zip的文件蛔六,不要求確認
move *.dll libs //將程序運行目錄下后綴為.dll的文件,移動到libs文件夾
move *.xml libs //將程序運行目錄下后綴為.xml的文件具钥,移動到libs文件夾
move *.pdb libs //將程序運行目錄下后綴為.pdb的文件,移動到libs文件夾
set releaseDir=d:\$(TargetName) //設(shè)置 releaseDir 變量為 d:\$(TargetName)掌动,TargetName為程序名稱
rd %releaseDir% /s /q //同上rd libs /s /q的作用宁玫,%releaseDir% 環(huán)境變量的表示
md %releaseDir% //同上md libs
rd $(TargetDir)log /s/q //刪除路徑 $(TargetDir) 下的log文件夾
xcopy $(TargetDir)*.* %releaseDir% /s /y //將$(TargetDir)路徑下的所有文件欧瘪,復(fù)制到%releaseDir%,不要求確認妖碉。/S:復(fù)制目錄和子目錄芥被,不包括空目錄。
rd %releaseDir%\Data /s /q //刪除%releaseDir%路徑下的 Data文件夾及子目錄和文件,不要求確認羹铅。