同事報案: 某ASP.NET 2.0 Web Site專案以VS2008開啟,新增Web Deployment Project,編譯網站沒有錯誤,編譯部署專案時,卻報出以下詭異訊息而失敗:

aspnet_merge : error occurred: An error occurred when merging assemblies: Unresolved assembly reference not allowed: System.Data.

經測試,如果選擇全部編譯成單一DLL的話可成功(下圖第一個選項),其餘選項則都不行:

有趣的是,同一專案使用VS2005的Web Deployment Project編譯,則是完全正常無誤!

靈機一動,猜想可能與VS2005/VS2008部署專案的aspnet_merge設定差異有關,於是試著修改.wdproj檔案(在VS2008 Solution Explorer,部署專案按右鍵,選Open Project File):
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets" />

將v9.0改為v8.0(前題是機器上要有安裝VS2005 Web Deployment Project),沒想到經過這番瞎弄,部署專案竟然就可編譯過關了!!

試著一一移除專案各支程式,想找出導致問題的原因,最後縮小到疑似與程式裡使用ODP.NET OracleCommand.CommandType = CommandType.StoredProceudre有關,但最終沒能理出明確且可反覆驗證的實驗結果,加上即使證實為VS2008 Web Deployment Projecct的Bug,被修復的機會也不高,不想再繼續投入時間。最後決定將Bug放生,未來先用以上方法鋸箭解決問題。


Comments

Be the first to post a comment

Post a comment