Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS2013:从未将bin目录放入源代码管理中,但它导致生成失败_C#_Dll_Version Control_Bin - Fatal编程技术网

C# VS2013:从未将bin目录放入源代码管理中,但它导致生成失败

C# VS2013:从未将bin目录放入源代码管理中,但它导致生成失败,c#,dll,version-control,bin,C#,Dll,Version Control,Bin,我是VisualStudio2013 C的新手。我知道通常应该避免将bin目录放入源代码管理中。然而,在我的bin目录中,有很多dll文件。没有这个DLL,我无法构建我的项目 我想也许我应该创建一个目录,比如'lib'来存储DLL。但事实是NuGet总是将dll放入bin目录。我应该手动将dll从bin移动到lib吗 我只想简单地将所有源代码、资源文件和dll文件放到源代码控制git中。然后,我的团队成员可以将项目拉出来,然后在他们的机器中构建它 2015年1月4日编辑:提供更多详细信息 例如,

我是VisualStudio2013 C的新手。我知道通常应该避免将bin目录放入源代码管理中。然而,在我的bin目录中,有很多dll文件。没有这个DLL,我无法构建我的项目

我想也许我应该创建一个目录,比如'lib'来存储DLL。但事实是NuGet总是将dll放入bin目录。我应该手动将dll从bin移动到lib吗

我只想简单地将所有源代码、资源文件和dll文件放到源代码控制git中。然后,我的团队成员可以将项目拉出来,然后在他们的机器中构建它

2015年1月4日编辑:提供更多详细信息

例如,我通过NuGet安装了log4net。完成后,我发现bin目录中存在3个新文件:

log4net.dll log4net.xml log4net.dll.refresh 我试图从我的项目中删除bin目录,然后重建我的项目,并希望看到一个新的bin目录将被构建,所有的dll/pdb/etc文件将返回。但不幸的是,它没有发生

据我理解,理想的过程是:

添加引用/安装包,然后记录某些配置信息并将相应文件安装到bin目录; 构建时,将从bin引用相应的lib文件,如果找不到这些文件,VS将从bin以外的其他位置获取引用信息并再次下载它们。这就是为什么我们不需要将bin放入源代码管理的原因之一。 然而,我发现在我的项目中并非如此

实际上,根据官方的.gitignore,我发现bin目录作为构建结果被过滤[Bb]在/。也就是说,即使是VS也知道应该忽略这样的目录


可能是我的项目中的某些错误设置?

永远不要将bin目录放入源代码管理。相反,要么将包放入源代码管理,要么允许NuGet在构建过程中恢复丢失的包。NuGet将东西放入/packages;除非有非常不寻常的事情发生,否则通常是构建一个项目,将他们放入/bin。您能指出哪个NuGet包有问题吗?