2011-06-02 44 views
0

我最近在嘗試使用Fluent Nhibernate運行SQLLite驅動的內存中存儲庫模擬(存儲庫模式)時遇到了一些問題。當我在Windows Server 2008上針對(TeamCity)構建代理運行測試時,測試失敗,無法加載System.Data.SQLite異常。MS爲x86和x64版本構建雙組件以及TeamCity

經過一番搗鼓之後,我記得在下載的SqlLite二進制文件中有一個x64版本的System.Data.SQLite。通過NUnit UI放置單元測試組件旁邊的測試並運行測試,不再拋出任何異常。

我的問題是:是否有可能告訴構建如下所示:在x64系統上編譯時,引用文件夾B中的二進制文件以及何時在x86系統上從文件夾A引用?那麼有條件的參考包括?

我現在唯一能想到的其他選擇是將TeamCity構建代理限制爲x64,並使用命令行腳本構建步驟在構建完成螞蟻單元測試運行之間覆蓋bin \ Release文件夾中的程序集。開發環境都是x86,所以這就是問題的根源。

寫這個還有另外一個選項 - 但是很麻煩 - 在svn build source被下載之後,以及使用腳本運行之前修改項目文件。

回答

2

引用可以在您的項目文件中作出條件(我正在彌補下面引用的詳細信息)。

<Reference 
    Include="SQLLite" 
    Condition="'$(Platform)' == 'x64'"> 
    <HintPath>PathTo/x64/SqlLite.dll"</HintPath> 
</Reference> 
<Reference 
    Include="SQLLite" 
    Condition="'$(Platform)' == 'Win32'"> 
    <HintPath>PathTo/Win32/SqlLite.dll"</HintPath> 
</Reference> 
+0

謝謝你的例子蜘蛛。我確實嘗試過,但有兩個問題;一個人不能再使用Visual Studio UI作爲參考(構建仍然有效),第二個問題,TeamCity代理並沒有拉入正確的組件。劑。 – 2011-06-03 12:31:55