1. 程式人生 > >msdev & devenv 的命令列用法

msdev & devenv 的命令列用法

msdev是visual studio 6.0的IDE程式, devenv是visual studio 2005的IDE程式
兩種IDE程式, 既可以工作在圖形模式下,也可以工作在命令模式下.
其中, 直接執行msdev 和 devenv將開啟vs6和vs2005的IDE介面. 命令列則支援不同的選項.
Msdev的命令列用法:
Usage:
  MSDEV [myprj.dsp|mywksp.dsw]  - load project/workspace
        [<filename>]            - load source file
        /?                      - display usage information
        /EX <macroname>         - execute a VBScript macro
        /OUT <filename>         - redirect command line output to a file
        /USEENV                 - ignore tools.options.directories settings
        /MAKE [<target>] [...]  - build specified target(s)
              [<project> - <platform> <configname>]
              [[<project>|ALL] - [DEBUG|RELEASE|ALL]]
              /CLEAN            - delete intermediate files but don't build
              /REBUILD          - clean and build
              /NORECURSE        - don't build dependent projects
比如projectdsw, 此工程檔案由包含很多的子專案.
編譯所有專案Debug版本為: 
  msdev project.dsw /make "all - Win32 Debug x86"
其中有一個project有許多其他projects組成,就是build_all, 包含了C/C++的動態庫,各種工具程式,還有各種示例程式. 編譯此project Debug版本就為:
  msdev project.dsw /make "build_all - Win32 Debug x86"
如果還想編譯Java的動態庫, 在vc6中設定好java後, 執行如下命令即可:
  msdev project.dsw /make "db_java - Win32 Debug x86"
在工程檔案外,還有一個用來衡量效能的程式, project_micro,編譯該程式的命令為:
msdev project_micro.dsp /make "project_micro - Win32 Debug x86"
即,對於專案檔案而言, 其只有一個project, 就是其本身.
對於自動化程式而言, msdev有一個弊端,就是程式返回值.  當專案檔案/工程檔案不存在的時候, msdev的返回值居然是0!, 和編譯成功的一樣, 也許msdev認為不存在就是成功吧.
devenv命令的格式就長了一點, 基本語法是:
devenv  [solutionfile | projectfile | anyfile.ext]  [switches]
比如, 為了方便VC2005以上的編譯, project將會同時提供vc6所用的dsw檔案同時, 也會推出一個sln檔案,這sln檔案就是solutionfile
使用此檔案編譯project預設配置的Debug版本為:
devenv project.sln /build "Debug|Win32"
只編譯db的動態庫則為:
devenv project.sln /build "Debug|Win32" /project db
編譯project_micro則複雜點,因為vc2005預設的project file是.vcproj的,而不是.dsp格式的,而test_micro只有.dsp格式的故而,需要先轉化為.vcproj格式的, 可以用VCBuild工具:
VCBuild project_micro.dsp /upgrade
這樣就產生了project_micro.vcproj
用devenv編譯就是:
 devenv project_micro.vcproj /build "Debug x86|Win32"
  之所有配置與上面不同在與, project_micro中是適用於VC6的配置, 轉化過來以後, 配置是保留的.
與msdev不同, devenv將檔案不存在視為編譯失敗. 更加適合程式處理.

附:devenv的命令列幫助

Microsoft (R) Visual Studio 8.0.50727.762 版。
版權所有 (C) Microsoft Corp 1984-2005。保留所有權利。

用法:
devenv  [solutionfile | projectfile | anyfile.ext]  [switches]

devenv 的第一個引數通常是一個解決方案檔案或專案檔案。如果您希望在編輯器中自動開啟檔案,也可以使用任何其他檔案作為第一個引數。當您輸入專案檔案時,IDE會在專案檔案的父目錄中查詢與該專案檔案具有相同基名稱的 .sln 檔案。如果不存在這樣的 .sln 檔案,IDE 將查詢引用該專案的單個 .sln 檔案。如果不存在這樣的單個.sln 檔案,則 IDE 將建立一個具有預設 .sln 檔名且未儲存的解決方案,其基名稱與專案檔案的基名稱相同。

命令列編譯:
devenv solutionfile.sln /build solutionconfig [ /project projectnameorfile [ /projectconfig name ] ]
可用的命令列開關:

/Build          使用指定的解決方案配置生成解決方案或
                專案。例如“Debug”。如果可能存在多個平臺,
                則配置名稱必須用引號括起來
                並且包含平臺名稱。例如“Debug|Win32”。
/Clean          刪除生成結果。
/Command        啟動 IDE 並執行該命令。
/Deploy         生成並部署指定的生成配置。
/Edit           在此應用程式的執行例項中開啟
                指定檔案。如果沒有正在執行的例項,
                則啟動一個具有簡化窗口布局的新例項。
/LCID           設定 IDE 中用於使用者介面的預設語言。
/Log            將 IDE 活動記錄到指定的檔案以用於故障排除。
/NoVSIP         禁用用於 VSIP 測試的 VSIP 開發人員許可證金鑰。
/Out            將生成日誌追加到指定的檔案中。
/Project        指定生成、清理或部署的專案。
                必須和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。
/ProjectConfig  重寫解決方案
                配置中指定的專案配置。例如“Debug”。如果可能存在
                多個平臺,則配置名稱必須用引號括起來
                幷包含平臺名稱。例如“Debug|Win32”。
                必須和 /Project 一起使用。
/Rebuild        先清理,然後使用指定配置生成
                解決方案或專案。
/ResetAddin     移除與特定外接程式關聯的命令和命令使用者介面。
/ResetSettings  恢復 IDE 的預設設定,還可以重置為
                指定的 VSSettings 檔案。
/ResetSkipPkgs  清除所有新增到 VSPackages 的 SkipLoading 標記。
/Run            編譯並執行指定的解決方案。
/RunExit        編譯並執行指定的解決方案然後關閉 IDE。
/SafeMode       以安全模式啟動 IDE,載入最少數量的視窗。
/Upgrade        升級專案或解決方案以及其中的所有專案。
                並相應地建立這些檔案的備份。有關備份
                過程的更多資訊,請參見
                “Visual Studio 轉換向導”上的幫助。

產品特定的開關:

/debugexe       開啟要除錯的指定可執行檔案。
                命令列的其餘部分作為它的引數
                傳遞到此執行檔案。
/useenv         使用 PATH、INCLUDE、LIBPATH 和 LIB 環境變數
                而不是使用 VC++ 生成的 IDE 路徑。

要從命令列附加偵錯程式,請使用:
        VsJITDebugger.exe -p <pid>


vcbuild 的命令列幫助

Microsoft(R) Visual C++ 專案生成器 - 命令列版本 8.00.50727
版權所有 (C) Microsoft Corp 1993-2003。保留所有權利。

用法: vcbuild [options] [project|solution] [config|$ALL]

選項:
/clean (/c)     只清除生成輸出
/error:<str>    輸出到 stderr 時新增到錯誤行的字首
/errfile:<file> 將所有錯誤記錄到指定的檔案
/htmllog:<file> 將輸出記錄到指定的 html 檔案
                (預設值: $(IntDir)\BuildLog.htm)
/implib         為 DLL 配置建立匯入庫(不連結)
/info:<str>     輸出到 stdout 時新增到資訊行的字首
/link (/l)      執行連結,而不生成源
/logcommands    將命令和響應檔案列印到螢幕
/logfile:<file> 將所有輸出和生成資訊記錄到指定的檔案
/override:<file> 使用給定屬性表文件中的設定
                重寫專案設定

/M<number>      指定要執行的併發生成的數量(如果可以執行併發生成)
/msbuild:<opt>  將 <opt> 傳遞至 msbuild.exe

/nocolor        在輸出錯誤資訊和警告訊息時不使用顏色突出顯示
/nohtmllog      不編寫 HTML 生成日誌檔案

/noimplib       不生成匯入庫。
                注意: 此選項會重寫 /implib。
/nologo         取消顯示版本和版權資訊
/nondefmsbuild  不要使用位於 .NET
                Framework 安裝中的 msbuild.exe 副本
/platform:<str> 只為給定平臺生成配置
/implibobjs:<s> 管理員的其他依賴項
/rebuild (/r)   清除生成輸出並執行生成
/forcelink      強制連結,而不生成源
/showenv        在 html 生成日誌中顯示環境
/time           從開始到結束的生成時間
/upgrade        將專案檔案升級到受支援的最新格式
                注意: 升級開關不執行生成
                注意: 對於解決方案檔案,會忽略此選項
/useenv (/u)    使用 INCLUDE 和 LIB 路徑的環境變數
/wrnfile:<file> 將所有警告記錄到指定的檔案
/warning:<str>  輸出到 stdout 時新增到警告行的字首
@<file>         從指定的響應檔案讀取選項

預設行為:
===============================================================================
如果沒有指定專案,並且目錄中只有一個 .vcproj 檔案,
將會生成該專案。
如果沒有指定配置,並設定了 VCBUILD_DEFAULT_CFG 環境
變數,將會生成該變數指定的配置。如果未設定
該變數,將會生成所有的配置。

預設操作是生成指定的配置,而不執行清除。

還將從 VCBUILD_DEFAULT_OPTIONS 環境變數中讀取
選項。
===============================================================================