.NET部署dll,项目不使用但引用的dll需要

bob*_*lez 4 c# dll reference

所以问题很简单:我的项目引用程序集X而不是Z.但程序集X确实引用程序集Z.程序集Z更新一些频繁,所以每当我构建我的项目时,我也想获得最新版本的Z .

到目前为止,我已经提出了3个选项:

  1. 引用程序集Z.这具有始终获得新版本的优点.但它确实污染了参考文献,并没有严格要求.
  2. 添加一个后期构建事件,该事件从更新它们的位置复制所需的DLL.我认为这是非常好的,直到我需要多个不同的DLL,这将使脚本相当长并且维护繁琐.
  3. 将程序集Z添加为资源,并将copy设置为output to true.这个我可能更喜欢,除了当我将DLL添加到项目中时,visual studio实际上将(当时)当前版本复制到项目中,并且没有到原始源的链接.因此,当程序集更新时,这不会以任何方式反映在我的项目中.除非我将这种方法与2号选项结合起来,但我还是可以单独使用选项2.

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

Jon*_*eet 5

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

对我来说这似乎也是最简单的选择 - 并且适合Visual Studio的应用程序所需的代码依赖性视图......所以Visual Studio对这些依赖项所做的任何事情都应该自然流动,而不是你必须考虑这在每个阶段.

编辑:作为替代选择,你考虑过使用NuGet吗?这样你只会在你的项目的NuGet依赖项中表达对X的依赖,但是它会"知道"它依赖于Z.我相信它应该只是工作......你应该能够这样做,即使这些是内部项目,因为您可以设置自己的NuGet源而不是公共存储库.