之前使用Castle開發的一個項目在進行維護時,發生了如下的編譯錯誤:
查詢了MSDN,發現了問題所在:
原來開發時使用的是Castle V1.0RC2,在Castle發布RC3後重新安裝了RC3,引起了這個錯誤。在項目中添加引用時指定的Castle的安裝路徑,從引用屬性裡可以看到項目中引用的程序集版本已經是1.0.3.0了,那麼1.0.0.0的版本要求是哪裡來的呢?在MSDN裡並沒有這個問題的說明,仔細查看引用程序集的屬性,發現裡面有一項“復制本地”,值為"True”。
原來是因為這個屬性的缺省設置是True,所以在編譯時會將需要的程序集復制到本地,查看項目文件夾中的程序集,發現版本果然是1.0.0.0的。將項目文件夾中的所有程序集刪除,重新編譯成功。