gpt4 book ai didi

.net - 使用 git 子模块时应该将 3rd 方 .NET dll 放在哪里以避免重复

转载 作者:太空狗 更新时间:2023-10-29 13:44:21 30 4
gpt4 key购买 nike

我在 Visual Studio 2008 中有两个 .NET 库项目,它们都使用 MySql Connector for .NET (MySql.Data.dll)。然后,这些库又被同样使用连接器的 .NET 命令行应用程序使用。库项目作为 git 子模块被引入到应用程序的解决方案中,并由 Visual Studio 中的项目引用。

我正在寻找存储和引用 MySql 连接器库的最有效策略。

我已尝试将 MySql.Data.dll checkin 所有三个项目(在它们的根文件夹中),当一个项目更改为较新版本的连接器 dll 时,这是有问题的。虽然每个项目都有自己的 dll 版本,但只有一个被打包到生成的应用程序中,导致 API 不匹配,这很难确定。这让我放弃了这种方法。

我曾尝试让命令行应用程序引用保存在子模块中的连接器 dll,但这只会消除只有一个子模块而不是本例中的两个子模块时版本不匹配的可能性。

我正在考虑将 dll 放入需要构建或使用该应用程序的所有机器的全局程序集缓存 (GAC) 中,但我担心在源代码管理中没有可用的应用程序的所有依赖项。

最佳答案

我通常有一个名为 extlib 或 dependencies 的文件夹,并将所有第三方 dll 放在该文件夹中。这将位于所有三个项目的根文件夹旁边,并将作为构建后步骤复制到 bin 文件夹中。

为什么你没有类似的东西

main/project1
main/project2
main/project3
main/extlib

基本上project1-3,extlib都是独立的git仓库。

关于.net - 使用 git 子模块时应该将 3rd 方 .NET dll 放在哪里以避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2882479/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com