2011-05-16 45 views
1

我們有一個VS2010解決方案,其中包含一個SQL CLR項目,該項目本身具有對已在我們的開發數據庫服務器上註冊的第三方程序集的引用(通過該解決方案中的數據庫項目有一個腳本,用於使用來自varbinary文字的CREATE ASSEMBLY註冊程序集)。使用TFS的SQL CLR項目構建失敗 - 無法解析對程序集的引用

當我們嘗試通過TFS運行構建但是CLR項目構建失敗,因爲它無法找到參考組件(以下錯誤消息)

ResolveSQLCLRReferences: 
    Primary reference "Telerik_Web_UI_RecurrenceEngine". 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets(147,7): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Telerik_Web_UI_RecurrenceEngine". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [..] 
     For SearchPath "xx\obj\sqlclr". 
     Considered "xx\obj\sqlclr\Telerik_Web_UI_RecurrenceEngine.dll", but it didn't exist. 
     Considered "xx\obj\sqlclr\Telerik_Web_UI_RecurrenceEngine.exe", but it didn't exist. 
ResolveAssemblyReferences: 
    Ignoring "Telerik_Web_UI_RecurrenceEngine" because it has a non-empty subtype "SQLCLR". 

在構建/通過VS它部署很好。我注意到我在我的obj \ sqlcr文件夾中有我需要的DLL文件,我假設它是從SQL Server上的程序集項目引用生成的。

我們是否需要檢查此文件,以便構建服務器可以找到它或者是否有某種方法使msbuild連接到數據庫服務器以解析引用?

或者我們應該從數據庫項目(而不是varbinary文字)中的文件註冊程序集,然後獲取CLR項目來引用它? (不知道如何,手動複製到\ obj \ sqclr文件夾可能?)。任何指導讚賞!

回答

0

檢入其他項目文件中的文件可以替代,但您必須確保在Team Build服務器上也可以找到文件引用。

由於這是第三部分庫dll,我相信它不會經常更改,因此將dll放入Team Build服務器的GAC中也可能有效。 (...並且是更清潔的解決方案。)

相關問題