【问题标题】:Assembly dependencies with .Net projects.Net 项目的程序集依赖项
【发布时间】:2008-10-03 05:20:24
【问题描述】:

如果我有一个引用另一个程序集 (B) 的程序集 (A)。 我想在项目中引用 A,我添加引用并将 A 复制到我的 BIN 目录中。它也不会复制 B,即使 A 依赖于它,所以代码不会编译。 我该如何设置,以便每当我引用 A 时,A 和 B 都会被复制到我的 bin 目录中?

【问题讨论】:

    标签: c# .net vb.net


    【解决方案1】:

    在 Visual Studio 中,将每个项目添加到同一个解决方案中。确保您使用项目引用而不是直接文件引用(即浏览程序集)。

    【讨论】:

    • 这是一个相当方便的解决方案,但不幸的是它不能很好地扩展;如果您发展到拥有数十个项目,您会注意到加载 sln 和构建的速度减慢。请参阅simple-talk.com/dotnet/.net-framework/… 和相关文章。仅供参考
    【解决方案2】:

    我认为除了明确添加两者之外,没有其他方法可以解决您的要求。但是,我不认为为了复制参考而添加项目是解决该问题的可行解决方案。并非解决方案所依赖的所有项目都必须添加到解决方案中。这将完全取决于您的整体项目结构、流程、源代码控制、分工等

    【讨论】:

      【解决方案3】:

      参考 A 和 B。

      【讨论】:

        【解决方案4】:

        很遗憾,您必须手动添加两者。当我使用 3.5 之前的 NHibernate 版本时,我也会遇到这种情况:它需要 log4net 和 Iesi.Collections 程序集。所以我别无选择,只能在我所有实现 NHibernate 的解决方案中手动包含对这两者的引用。

        当然,如果您只有 DLL,这将是一个更大的问题。如果它是一个项目,您拥有 Visual Studio 本身的代码库,则会事先警告您缺少引用。

        【讨论】:

        • 显然有一个 Telerik 控件,当您浏览到 dll 并添加它时,它会添加许多其他必需的程序集。我没见过,是另一个程序员告诉我的。知道它是否可能是一个很好的技巧。
        【解决方案5】:

        将它们添加到全局程序集缓存怎么样?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-12
          • 1970-01-01
          • 2016-11-26
          • 2013-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多