C# 不应该';你不认为bin文件夹是暂时的吗?

C# 不应该';你不认为bin文件夹是暂时的吗?,c#,.net,compiler-construction,building,C#,.net,Compiler Construction,Building,我总是教自己和其他人把垃圾箱文件夹看作是暂时的 也就是说,你应该能够删除它,下次你重建它时,它会被重新创建,任何引用都会被复制到其中,不会有任何麻烦,也不会把所有的鸡蛋都放在一个篮子里。或者在这种情况下,不要将所有必需的DLL直接放入bin文件夹。把它们放在别处,然后直接引用 我见过有人把DLL直接放进bin文件夹并在那里引用它们时摔倒。所以我尽量避免这种情况,将所有必需的DLL放在一个名为Refs的文件夹中,并在其中添加对DLL的引用。在编译时,它们将被复制到bin文件夹中 我疯了吗?这是不是

我总是教自己和其他人把垃圾箱文件夹看作是暂时的

也就是说,你应该能够删除它,下次你重建它时,它会被重新创建,任何引用都会被复制到其中,不会有任何麻烦,也不会把所有的鸡蛋都放在一个篮子里。或者在这种情况下,不要将所有必需的DLL直接放入bin文件夹。把它们放在别处,然后直接引用

我见过有人把DLL直接放进bin文件夹并在那里引用它们时摔倒。所以我尽量避免这种情况,将所有必需的DLL放在一个名为Refs的文件夹中,并在其中添加对DLL的引用。在编译时,它们将被复制到bin文件夹中

我疯了吗?这是不是太小心了?常识

这种情况下的最佳实践是什么

干杯

--背风

更新:结果证明我没有生气

干杯,伙计们,你们在我忘记提到的一些问题上学到了一些东西

主要是:

  • 未将bin文件夹签入源代码管理

不,这完全有道理,是我自己在个人项目中实施的一种做法。bin文件夹下的任何内容都应视为msbuild/Visual Studio环境的属性

虽然它们都非常小心地只删除它们知道的输出,但用户可能不完全理解什么是生成输出,并在生成输出上进行复制,从而在“干净”样式的操作期间将其删除。在清理DLL时,其他工具也可能更积极。如果我认为构建过程正在查看过时的数据,我自己往往会时不时地对bin目录进行核爆


此外,拥有ref的位置为您提供了一个单一的位置来更新解决方案中项目集合的引用。对我来说,这是一个非常自然的结构

我不知道你是不是疯了,但我们在我上次工作的地方遵循了同样的做法,我把它们带到了我自己的工作中。/bin和/obj文件夹在版本控制之外,我从未接触过。在开发过程中,就我而言,它们基本上不存在。所有包含的DLL都位于另一个文件夹中并被引用。

我认为bin文件夹是暂时的,它是完整的编译应用程序可以使用的地方


我们将任何外部程序集放置在名为Assemblies的目录中。许多其他人使用一个名为lib的目录。这将编译应用程序所需的内容与编译后的应用程序本身分开。

没错,您不希望将引用的DLL放入
bin
文件夹中。如果使用版本控制,则应始终完全排除bin和obj文件夹

所有引用的DLL都应包含在版本控制下,最好是在项目的
主干下的单独子目录中,以便每个人都有每个干净重建所需的所有源和引用<代码>bin
文件夹必须从头开始轻松重新创建

这是我相信大多数人在查看你的消息来源时所期待的


我们还在项目的根目录中包含一个
\u READ\u ME.txt
文件,说明批量构建项目所需的工具和材料的附加信息(
nant
perl
,等等),因此有时可能会有一些特定的差异,但这类事情从来都不会让人感到意外。

我也有同样的感觉,总是将我的DLL直接放在项目文件夹中。Visual Studio使用项目根目录作为刷新路径,因此,如果我更新DLL,引用不会中断。+1表示“应始终完全排除bin和obj文件夹”