今天做項目的時候突然出現編譯不通過,錯誤為Lc.exe已退出,代碼為-1.這讓我鬱悶了至少30分鐘,後來上網查了一下,才知道原因所在,我們項目中使用了第三方組件(Infragistics)造成的,至於為什麼會這樣,可以參考:
http://smartstone.cnblogs.com/archive/2006/06/08/420862.html
下面來看一下什麼是LC.exe,LC.exe即許可證編譯器,它讀取包含授權資訊的文字檔,併產生一個可作為資源嵌入到公用語言運行庫可執行檔中的 .licenses 檔案。
lc /target:targetPE /complist:filename [/outdir:path]
/i:modules [/nologo] [/v]
| 選項 |
說明 |
/complist: filename |
指定包含授權組件列表的檔案名稱,這些授權組件要包括到 .licenses 檔案中。每個組件用它的全名引用,並且每行只有一個組件。 命令列使用者可為項目中的每個表單指定一個單獨的檔案。Lc.exe 接受多個輸入檔案併產生一個 .licenses 檔案。 |
/h[elp] |
顯示該工具的命令文法和選項。 |
/i: module |
指定模組,這些模組包含檔案 /complist 中列出的組件。若要指定多個模組,請使用多個 /i 標誌。 |
/nologo |
取消顯示 Microsoft 啟動標題。 |
/outdir: path |
指定用來放置輸出 .licenses 檔案的目錄。 |
/target: targetPE |
指定為其產生 .licenses 檔案的可執行檔。 |
/v |
指定詳細模式;顯示編譯進度資訊。 |
/? |
顯示該工具的命令文法和選項。 |
執行個體:
1 . 如果使用的是包含在名為 HostApp.exe 的應用程式中的 Samples.DLL 中的授權控制項 MyCompany.Samples.LicControl1,則可以建立包含以下內容的 HostAppLic.txt。
MyCompany.Samples.LicControl1, Samples.DLL
2. 使用下面的命令建立名為 HostApp.exe.licenses 的 .licenses 檔案。
lc /target:HostApp.exe /complist:hostapplic.txt /i:Samples.DLL /outdir:c:\bindir
3. 產生將 .licenses 檔案作為資源套件含在內的 HostApp.exe。如果產生的是 C# 應用程式,則應使用下面的命令產生應用程式。
csc /res:HostApp.exe.licenses /out:HostApp.exe *.cs
下面的命令根據由 hostapplic.txt、hostapplic2.txt 和 hostapplic3.txt 指定的授權組件列表來編譯 myApp.licenses。modulesList 參數指定包含授權組件的模組。
lc /target:myApp /complist:hostapplic.txt /complist:hostapplic2.txt /complist: hostapplic3.txt /i:modulesList
參考資料: http://msdn2.microsoft.com/zh-cn/library/ha0k3c9f.aspx