c# - 如何定位组件间引用的 DLL

标签 c# .net dll reference modularity

我的 SAAS 公司有两个 C#.NET 产品,分别称为 Application Alpha 和 Application Beta。它们都引用了一些我们可以称为 Core 的库。

目前,代码库是整体式的,存储在具有单个 .NET 解决方案的单个 SVN 存储库中,我们正在努力使其更加模块化/组件化。我们已经为两个应用程序和核心库拆分为单独的存储库,但我们现在遇到了以下问题:

Alpha 和 Beta 必须引用 Core,但我们试图避免直接引用代码,因为那样我们实际上又回到了原点:您需要检查并共同定位所有存储库。那么我们应该如何在这些组件之间引用程序集?

每个组件都可以有一个目录,其中包含需要引用的其他组件的 DLL,存储在 SVN 中,但这将意味着每次更新 Core 以将新的 DLL 推送到 Alpha 和 Beta 时都需要付出额外的努力。

或者我们可以将 DLL 存储在 SVN 的中央位置(和/或 GAC 中),但这意味着每次更新 Core 时其他人都需要付出额外的努力来提取新的 DLL。

还有我们忽略的第三种选择吗?

最佳答案

我有类似的东西,其中我有 5 个应用程序使用我构建的一系列 Web 控件。这些控件被编译成一系列 DLL 以进行模块化,使用它们的应用程序位于单独的服务器上。

我所做的是利用 VS2008 的构建实用程序来执行一个批处理文件,该文件在发布构建执行时将已编译(更新)的 DLL 复制到生产服务器。

您可以通过转到构建到 DLL(或 DLL)中的项目并右键单击该项目并转到“属性”来执行此操作。然后您转到 BUILD EVENTS 选项卡。在那里您会看到预编译命令行和后编译命令行文本框。

因此,您的发布构建可以完全自动化,您永远不必担心生产 DLL 版本之间的 DLL hell 般的差异。

希望对您有所帮助, 日语

关于c# - 如何定位组件间引用的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045697/

相关文章:

c# - 剑道按钮 `k-danger` 不工作

.net - 带有文本文件的 Entity Framework (没有数据库!)

.net - 如何实例化已注入(inject)依赖项的类的对象?

c# - 无法处理 C# COM 对象

c# - 为具有 List 对象属性的模型生成创建 View

c# - 工厂模式可以这样使用吗?

c# - 值必须是小于无穷大的数字

c# - 与外部系统集成

c++ - 无法引用库项目 (DLL),因为缺少 .lib 文件

perl - 使用 PAR Packer 进行编码时需要包含哪些内容