【问题标题】:configuring dll from bin folder in existing project从现有项目中的 bin 文件夹配置 dll
【发布时间】:2016-05-20 18:48:10
【问题描述】:

我得到了其他开发人员开发的 c# 解决方案。
该解决方案包含 30 个项目,还有 git 文件夹。 每个项目都有其bin/ 文件夹。我有网站和类库。所有代码质量都很差:例如bin e obj文件夹包含在git中。

我正在重构代码并重新配置 git。我不想在 git 中包含 bin/ 文件夹,所以我在每个项目的根目录中创建了一个 dll 文件夹,其中包含 bin/ 文件夹中的库。这样Visual Studio中的引用也没有任何警告。

对吗?还有其他方法吗?

第二个问题:如果我的 bin 文件夹中有一个 dll 不在参考文献中,我是否也要链接它?还是可以不考虑?

编辑:

EG: in a class library (not in umbraco project):

 - bin/umbraco.dll
 - bin/umbraco.provider.dll
 - bin/umbraco.core.dll
 - bin/lucene.net.dll

In visual studio is referenced only:

 - umbraco.dll

所以三种方式:

  1. 在 git 中包含 bin 文件夹,如果我需要编辑这个项目,我会 了解如何配置它;
  2. 在根目录(和 git)中添加一个 dll 文件夹,将 umbraco.dll 复制到其中。所以参考 视觉工作室还可以。但只会将 umbraco.dll 复制到 bin 文件夹。还有其他人?我需要它们吗?
  3. 在根目录(和 git)中添加一个 dll 文件夹,复制其中的所有 dll 文件。 所以视觉工作室中的参考是可以的。我把别人当作未来 用途。

我选择了第三种解决方案。

【问题讨论】:

    标签: c# git visual-studio dll


    【解决方案1】:

    我不想在 git 中包含 bin 文件夹

    只需确保您有一个 .gitignore 声明您不想要的东西:

    bin/
    

    这样,您甚至不必创建dll 文件夹。或者,如果您这样做,您可以忽略同一 .gitignore 文件中的 bin/dll/(注意尾随的“/”用于忽略 .gitignore 中的文件夹)。

    对于 CSharp 项目,gitignore.io proposes this .gitignore file

    如果我忽略 bin 文件夹而你拉取,项目将无法编译!

    git 应该总是忽略(大)二进制文件:这些依赖项,正如 Iain 所评论的那样,应该来自工件存储库(如 Nugget)或其他 externa 引用:在 git source 存储库,用于跟踪 sources(文本文件)的历史记录,而不是存储二进制依赖项。

    但如果必须,请仅将项目引用的 dll (umbraco.dll) 复制到版本化文件夹中,然后查看项目是否编译/工作。然后添加缺少的。
    如果您必须对这些二进制依赖项进行版本控制,最好尝试仅对最少数量的 dll 进行版本控制。

    【讨论】:

    • 我已经知道 gitignore。问题是为将来正确配置。如果我忽略 bin 文件夹而你拉,项目将无法编译!
    • 建议构建不应依赖于“bin”文件夹中被检入源代码管理的任何内容。外部依赖项应在其他地方(可能是 lib 文件夹)签入或通过 NuGet 拉入。项目间依赖应该使用项目引用而不是引用生成的 DLL。
    • @Iain 我同意,但这不是一个大项目,也没有任何文档。我只需要得到它,编译和编辑。那么,最好将 bin 文件夹包含在 git 中还是将 dll 保存在项目子文件夹中?
    • @VonC 谢谢,但正如我在上一个答案中所说的那样,讨论是关于这个特殊情况的
    • @Emanuele 好的,那么将 dll 文件夹添加到 git 对您来说应该是一个足够好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2010-12-15
    • 1970-01-01
    • 2015-08-27
    • 2018-07-04
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多