有兩個都是 .NET 2.0 的專案,專案一依賴專案二,專案二建置沒問題,但專案一在 Visual Studio 2013 Preview 始終無法建置,非得升到 .NET 4.0 不可,而這情形在以前的 Visual Studio 2012 並不存在。
比較值得懷疑的,是專案二有參考到 COM 元件,不知道那個 Interop 介面(也重新產生過)是不是綁到 .NET 4.0 去了?用 ildasm.exe 一看,果然沒錯。歸根究底,與開發工具自動產生的 Interop 介面有關,VS2012 用 .NET 2.0 的 Tlbimp.exe,而 VS2013 用 .NET 4.0 的 Tlbimp.exe。知道原因後,想解決這個問題就簡單了,自已在命令列用適當的工具產生即可,例如:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\Tlbimp xxx.dll -> 2.0
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\Tlbimp xxx.dll -> 4.0
沒有留言:
張貼留言