4

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

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

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

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

4

1 回答 1

5

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

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

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

于 2012-08-02T06:34:13.857 回答