2012-08-02 134 views
4

所以这个问题很简单:我的项目引用程序集X但不是Z.但是程序集X执行引用程序集Z.程序集Z更新有点频繁,所以每当我构建我的项目,我也想得到Z的最新版本。.NET部署dll项目不使用,但引用的dll需要

到目前为止,我想出了3个选项:

  1. 参考装配Z.这有获得新版本,一直的优势。但它确实污染了那些并不严格要求的内容。
  2. 添加一个后期构建事件,从中更新它们的位置复制所需的DLL。我认为这是相当好的,直到我需要多个不同的DLL,这将使脚本相当冗长和繁琐的维护。
  3. 将组件Z添加为资源并将副本设置为输出为true。这个我可能会更喜欢,除了当我将DLL添加到项目时,Visual Studio实际上将(当时)当前版本复制到项目中,并且没有链接到原始源。因此,当程序集更新时,这在我的项目中没有任何反映。除非我将这种方法与选项2结合起来,但是我可能只是单独使用选项2。

那么,我错过了什么,或者这些是我唯一的选择吗?

回答

5

我会选择1.我认为您的项目引用它所依赖的所有内容是完全合理的,即使这些依赖关系有时可能是间接的。

这也似乎是最简单的选项我 - 和一个与代码依赖Visual Studio的观点适合于您的应用程序需要......所以任何的Visual Studio与那些依赖不应该只是自然流出,而比你在每个阶段都要考虑这个问题。

编辑:作为替代选项,你有没有考虑过使用NuGet?这样,你最好只表达你的项目的NuGet依赖内的X依赖,但它会“知道”,它依赖于Z.我相信应该都只是工作...你应该能够做到这一点即使这些是内部项目,因为您可以设置自己的NuGet源而不是公共存储库。

+0

谢谢,是的,我最喜欢选项1。尽管NuGet会是一个有趣的选择。我从来没有在它上面部署过任何东西,但我认为它会做出一个有趣的测试案例。 – bobblez 2012-08-02 06:44:08