天天看點

Lc.exe 已退出,代碼 -1Lc.exe 已退出,代碼 -1

Lc.exe 已退出,代碼 -1

Lc.exe 已退出,代碼 -1

可能的原因是:在你的項目中引用了第三方元件,并且這個第三方元件是個商業元件,他在元件的主使用類定義了LicenseProvider(typeof(LicFileLicenseProvider))

這個Attribute。

VS2005在編譯時檢測到這個類的時候,會檢查到元件使用的是LicFileLicenseProvider這個屬性,表示有元件使用的是把許可的輔助資訊儲存在license.licx檔案中,這個檔案儲存在vs2005中解決方案資料總管中的Properties檔案夾内。

這個檔案的内容實際上是個引用,他儲存着你使用的第三方元件主使用類的名稱空間+類名+檔案名+文化+PublicKeyToken資訊,這個檔案是自動生成的。

如果這個資訊與你使用的元件dll中的實際内容不比對,則lc.exe就會出現這個錯誤資訊。

這個資訊出現的原因是你在項目中使用了商業元件的測試版,而在釋出的時候使用的是哪個商業元件的破解版。大部分的商業元件經過破解的時候,強名稱簽名就會消失,是以破解的元件與原來的測試版元件的引用資訊是完全不同的。故每次編譯的時候,vs2005自動調用語言編譯器之前會調用lc(許可編譯器),就會出現-1錯誤。

引用自: http://smartstone.cnblogs.com/archive/2006/06/08/420862.html

解決方法就是把Properties檔案下的license.licx給删除,重新編譯,如果還出現這個問題的話,必須将你的破解版的哪個元件使用lidism給翻譯成il語言,然後用ilasm重新編譯成dll,在編譯的時候加入 /key=[你的強名稱檔案].snk 參數,自己加入強名稱簽名,然後使用vs2005重新編譯,就可以成功了。

我的解決方法是,在項目中添加一個新窗體Form1,然後将出錯的那幾個控件重新添加到Form1上,系統會自動添加一系列license記錄,重新編譯即可