2012-09-16 88 views
1

我在c#中有一個包含圖形用戶界面的項目。現在我們正在獲得第二個硬件後端。我們想要的是可以在編譯項目後決定後端使用哪個庫並更改用於後端處理的類。 我看着msbuild,但我不知道如何實現它與此。有另一種或更好的方法來做到這一點?Visual Studio構建目標

+0

你不想在UI中這麼做嗎? – SLaks

+1

您是否研究過像StructureMap這樣的任何依賴注入(控制反轉)框架?他們的目的是讓你通過配置來改變你正在使用的實現。所以,你不需要在編譯時擔心;在運行之前,你會改變它。我假設您爲後端使用了一個通用接口,以便在不更改代碼的情況下輕鬆切換兩者。 –

回答

0

正如Mike所說的,依賴注入是正確的解決方案,在部署時包含合適的.dll以解決界面問題,這可以簡單到TinyIoC。不正確的方法是使用條件引用來調整.csproj,請參閱example,但基於您的情況下的$(配置)值,因此您可以在VS或CLI中切換,它可以工作,但會帶來痛苦的世界。

+0

這個想法並沒有在您正在編譯的計算機上安裝所有必需的dll。作爲後端之一的是National Instruments公司的DAQmx,它需要大約1GB的容量,未來還會有一些其他的後端,所以在linux下有一個類似configure腳本的東西,你可以選擇你想要編譯的後端gui。 –

+0

我的一位朋友告訴我,我應該提到每個後端都需要安裝自己的sdk。如果你得到很多需要不同sdks的後端,這使得它不太合理。因此,在編譯你想要編譯gui的後端和sdk的程序之前,最好決定。 –

相關問題