2010-11-09 118 views
0

我已將我的項目從.NET 3.5遷移到4.0,因此我使用的是C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319而不是C:\ MSBuild.exe。 WINDOWS \ Microsoft.NET \框架\ v3.5版本。這是造成ExecuteDDL任務失敗。請幫忙。 乾杯, NabinMSBuild ExecuteDDL在.NET Framework 4.0中失敗

+0

當然,這是足夠的信息去。不。例外?內部例外?事件日誌?建立日誌? – Will 2010-11-09 13:11:18

+0

「ExecuteDDL」任務意外失敗。 System.IO.FileNotFoundException:無法加載文件或程序集「Microsoft.SqlServer.ConnectionInfo,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91」或其某個依賴項。該系統找不到指定的文件。 文件名: 'Microsoft.SqlServer.ConnectionInfo,版本= 9.0.242.0,文化=中性公鑰= 89845dcd8080cc91' 在System.Reflection.RuntimeAssembly._nLoad(的AssemblyName文件名,字符串的代碼庫,證據assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark & – Nabin 2010-11-09 13:24:04

回答

1

「無法加載文件或程序集Microsoft.SqlServer.ConnectionInfo,版本= 9.0.242.0,」

看起來像它尋找SQL Server 2005客戶端工具,你有這些安裝?

1

MSBuild社區任務中的ExecuteDDL任務使用Microsoft.SqlServer.ConnectionInfo程序集。該組件是動態加載和它改掉加載以下組件按以下順序:

  • Microsoft.SqlServer.ConnectionInfo,版本= 10.0.0.0,文化=中性公鑰= 89845dcd8080cc91
  • Microsoft.SqlServer。 ConnectionInfo,版本= 9.0.242.0,文化=中性公鑰= 89845dcd8080cc91

所以它會嘗試加載10.0(SQL Server 2008中),然後9.0(SQL Server 2005中)。如果它找不到其中任何一個,則會失敗,並收到異常。

默認情況下,Sql Server將這些設置放在GAC中,因此請先檢查它們是否在您的機器上。如果這不能解決您的問題,請告訴我。我寫了這個任務,我會從你那裏得到更多的信息並讓它工作。

更新

沒有添加SQL Server 2008中支持,直到03/2009,不幸的是官方的版本是比舊的。從http://msbuildtasks.tigris.org/裏面有很多bug修復搶每晚構建:

+0

GAC版本是10.0.0.0,但沒有9.0.242.0,但是Framework 3.5的MSBuild工作正常,而Framework 4.0的MSBuild則拋出了異常 – Nabin 2010-11-11 11:23:15

+0

我確認這個任務在MSBuild 4.0中工作得很好。我更新了上面的答案 – Todd 2010-11-16 02:02:40

+0

我可以確認獲得最新的每晚構建而不是修復問題。默認情況下自然會發布的最新版本嚴重老化! – 2011-01-07 14:06:53