Windows操作系統(tǒng)中的Path環(huán)境變量:
??當(dāng)系統(tǒng)運(yùn)行一個(gè)程序而沒(méi)有告訴它程序所在的完整路徑時(shí),系統(tǒng)除了在當(dāng)前目錄下尋找此程序外,還會(huì)到Path中指定的路徑去找。
Path環(huán)境變量
??為了將編譯生成的指定后綴的文件,存放到指定的文件夾中,在程序運(yùn)行之初(即程序在調(diào)用所需DLL等文件前),將指定的文件夾路徑追加到專(zhuān)用路徑列表中。如此一來(lái),程序在調(diào)用相應(yīng)的DLL等文件時(shí),如果在其它文件中,沒(méi)有找到需要的DLL文件時(shí),會(huì)自動(dòng)到剛才新添加到專(zhuān)用路徑中去查找,如果查找不到程序就會(huì)出錯(cuò)。
??根據(jù)程序的這個(gè)特點(diǎn),可以在項(xiàng)目屬性的“生成事件”中添加相應(yīng)的命令(對(duì)一些宏的利用、環(huán)境變量設(shè)置及DOS命令的組合),將編譯生成的指定后綴的文件,存放到指定的文件夾中。這樣使程序生成文件的存放整潔。
internal static class Program {
/// <summary>
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
[STAThread]
private static void Main() {
#pragma warning disable 0618 //關(guān)閉此警告信息提示
//將指定的目錄名追加到專(zhuā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());
}
}
??然后,找到項(xiàng)目“屬性”的“生成事件”中,進(jìn)行下面的宏、環(huán)境變量設(shè)置及DOS命令組合處理語(yǔ)句輸入:
宏
rd libs /s /q //在程序運(yùn)行目錄下刪除libs目錄及目錄下子目錄與文件,不要求確認(rèn)信息
md libs //在程序運(yùn)行目錄下創(chuàng)建libs目錄
del *.rar /q //在程序運(yùn)行目錄下刪除后綴為.rar的文件,不要求確認(rèn)
del *.zip /q //在程序運(yùn)行目錄下刪除后綴為.zip的文件,不要求確認(rèn)
move *.dll libs //將程序運(yùn)行目錄下后綴為.dll的文件,移動(dòng)到libs文件夾
move *.xml libs //將程序運(yùn)行目錄下后綴為.xml的文件,移動(dòng)到libs文件夾
move *.pdb libs //將程序運(yùn)行目錄下后綴為.pdb的文件,移動(dòng)到libs文件夾
set releaseDir=d:\$(TargetName) //設(shè)置 releaseDir 變量為 d:\$(TargetName),TargetName為程序名稱(chēng)
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%,不要求確認(rèn)。/S:復(fù)制目錄和子目錄,不包括空目錄。
rd %releaseDir%\Data /s /q //刪除%releaseDir%路徑下的 Data文件夾及子目錄和文件,不要求確認(rèn)。