設(shè)置VS將編譯生成的指定后綴的文件放到指定的文件夾中

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)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容