如何消除程序集的冗余副本

时间:2019-05-02 21:28:44

标签: vb.net dll gac

我目前正在为本地公司开发一系列应用程序。为了尽可能使内容规范化,我创建了一个“核心”库,该库将处理所有常用功能(报告创建,FTP,数据库执行等)。但是,为了创建我的核心库,我必须引用许多其他(第三方)库,例如Npgsql.dllNewtonsoft.Json.dll,各种CrystalDecisions库等。

目前,对于我构建的每个新应用程序,我都将所有库(包括我自己的核心库)复制到网络上的各个可执行文件夹中。这适用于我们的环境,因为这些应用程序只能在内部使用。

但是,为了简单起见,我想从中央存储库访问所有第3方库。我不太在乎我的核心库,但是由于我使用的第三方库的数量,它可能会让人有些困惑-特别是如果这些库中只有一个库在特定应用程序的可执行文件夹中已过期。

这种情况是否有“最佳实践”?我浏览了有关GAC的一些信息,但我不确定100%如何在这种情况下使它工作。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

一种解决方案是register the DLLs on the host machine,因此它们不再需要出现在文件系统中。

您也可以merge assemblies减少需要复制的总数。

这两种方法都会有些麻烦,我通常只是复制您提到的DLL。将它们放在文件系统中使更新内容时更容易换出一个。仍然有兴趣听其他解决方案...