【发布时间】:2015-03-06 00:23:14
【问题描述】:
我正在部署一个大型 dll,导致最终构建非常庞大。
所以我有引用 ProjectB 的 ProjectA,它引用第三方 DLL。 此第三方 DLL 现在位于两个项目 bin 文件夹中,即使它仅由 ProjectB 直接引用。问题是这个第三方 dll 很大,并且由于它被复制到这么多 bin 文件夹中,导致最终构建很大。我真的只是在寻找这种情况下的最佳做法。
【问题讨论】:
-
请澄清您的问题。这是一个 web 项目还是一个 windows 项目?我真的不明白这个问题,因为通常当您部署应用程序时,除了它的 DLL 依赖项之外,还有一个可执行文件。换句话说,一个“项目”将编译成一个程序集,然后部署。 “项目”本身不会部署,只有程序集是。
-
这是几个 Web 项目,它们使用了几个使用这个大 dll 的库项目。我没有谈论部署,因为我的构建在开发人员机器和构建机器上都占用了大量空间。所以我们可能有一个数据访问类,它引用了这个用于数据库连接的大型 dll。然后,在 Web 项目中引用数据访问类。现在,大 dll 被复制到数据访问类和 web 项目 bin 文件夹中。
-
因为 ProjectA 引用了 ProjectB,这意味着您已将 ProjectB 复制到 ProjectA 的 bin 文件夹中,这意味着 ProjectB 需要大型 DLL 才能正确加载......因此它必须同时存在于两者中。 A 没有引用 C,但它确实引用了 B,B 引用了 C,否则 A 将无法加载 B 程序集。
-
@ErikFunkenbusch 这就是我的想法:(...希望有一些灵丹妙药,但似乎并非如此。
-
在构建项目 A 之后,您可能能够对项目 B 执行清理,但这意味着每次都必须完全重建 B。
标签: .net visual-studio dll