比方说我写了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会是最好的方法吗?