比方說我寫了SuperTest在之上nUnit 2.1我想和世界分享我的創作。 Jess很樂意使用我的圖書館,她也希望直接使用nUnit。她的應用HeadBook使用NUnit的2.8分享開放源代碼.net庫
,我可以看到一個源釋放的情景:
- 她檢查出SuperTest源所附帶NUnit的2.1,在NUnit的2.8份,重新編譯SuperTest,將SuperTest.dll複製到HeadBook中
- 她檢出不附帶nUnit但包含必須提供的引用的SuperTest源代碼。她在NUnit的2.8份,重新編譯SuperTest,副本SuperTest.dll到HeadBook
我看到一個二進制釋放的情景:
- 她下載SuperTest 1.0二進制文件,提出SuperTest.dll和NUnit 2.1到從GAC和引用SuperTest的GAC
- 她下載SuperTest 1.0二進制文件,複製到的dll和HeadBook重新編譯HeadBook與NUnit的工作2.1
- 她下載SuperTest 1.0二進制文件具有蜂ñILMERGED到一個DLL,副本到頭部和參考
我想解決設置這個項目的最佳方式。看起來最好的方法是包含一個nUnit副本,有一個本地引用和ilmerge作爲構建步驟。
我想避免SuperTest正在重新編譯不同版本的依賴我沒有測試過,但我可能也想避免gac,所以部署是無痛的。
ilmerge會是最好的方法嗎?