錯誤為Lc.exe已退出,代碼為-1


近來在做項目的時候,突然遇到 了 LC.exe 已退出,代碼為-1 的提示,怎么也編譯不了,在查了相關的資料后,終於明白了原因,其解決方案如下 :

1. 以管理員的身份來運行vs, 並把項目中“properties”目錄下的“license.licx”文件刪除,再編譯就成功了。

2. 注冊第三方組件或使用破解版

3. 將破解版的哪個組件使用lidism給翻譯成il語言,然后用ilasm重新編譯成dll,在編譯的時候加入  /key=[你的強名稱文件].snk 參數,然后使用VS重新編譯

其原因如下 :

  項目所使用的組件中 用了 LicenseProvider(typeof(LicFileLicenseProvider))  這個特性,VS 在編譯時,檢查到這個特性的時候,就會自動去加載項目 Properties 目錄下 license.licx 文件,這個文件是組件的許可協議文件,自動生成的,但這個文件中的內容實際上是個引用,這個引用的內容保存着你使用的第三方組件主使用類的名稱空間+類名+文件名+文化+PublicKeyToken信息, 如果 這個文件的內容與組件dll 中的實際內容不相符,LC.exe 就會退出,終止編譯。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM