在添加 DLL 作为对 ASP.Net 项目的引用时,VS2008 会在 bin 目录中添加几个文件。如果 DLL 被称为 foo.dll,VS2008 会添加 foo.dll.refresh、foo.pdb 和 foo.xml。我知道 foo.dll 是什么 :-),为什么 VS2008 会添加其他三个文件?这三个文件有什么作用?我可以删除它们吗?是否需要将它们添加到源代码管理中?
5 回答
源代码控制:
Ben Straub 在对这篇文章的评论中说:.dll.refresh
如果需要,应该将文件添加到源代码管理中,而.xml
,.pdb
当然.dll
不应该添加文件。
John Rudy 解释了何时添加.refresh
文件:
为什么这是一件好事(有时)?假设您处于团队环境中。有人签入 foo.dll 的代码,您的构建系统构建一个新的 DLL,将其输出到服务器上的文件共享中。您的刷新文件指向该 DLL 的服务器副本。下次构建时,VS 将自动获取该 DLL 的最新和最棒的副本。
.xml就像 David Mohundro 说的:
xml 文件用于 XML 注释和智能感知。Visual Studio 将解析并显示当您调用这些 DLL 中的方法时添加的 XML 注释。
.pdb像 David Mohundro 说的:
pdb 用于调试和符号。如果您从中抛出异常,您将能够获得堆栈跟踪等。您可以控制选择是否构建 PDB。
.refresh 来自关于 .refresh 文件的博客文章:
它告诉 VS 在哪里寻找具有相同基本名称的 dll 的更新版本。它们是文本文件,您可以打开它们并查看它使用的路径。
它们的目的是防止您自己复制新版本。在 VS2003 中,项目文件将包含引用的源位置,但由于 VS2005 不将项目文件用于 ASP.NET 项目,因此这是该特定功能的替代品。
刷新文件(因为还没有人点击它!)描述了 DLL 的来源。这是用于自动刷新引用;每当您进行完整构建时,VS 都会在该路径中查找并复制该版本的 DLL。
为什么这是一件好事(有时)?假设您处于团队环境中。有人签入 foo.dll 的代码,您的构建系统构建一个新的 DLL,将其输出到服务器上的文件共享中。您的刷新文件指向该 DLL 的服务器副本。下次构建时,VS 将自动获取该 DLL 的最新和最棒的副本。
pdb 用于调试和符号。如果您从中抛出异常,您将能够获得堆栈跟踪等。您可以控制选择是否构建 PDB。xml 文件用于 XML 注释和智能感知。Visual Studio 将解析并显示当您调用这些 DLL 中的方法时添加的 XML 注释。
我不知道刷新文件。
foo.pdb 是 foo.dll 的调试器符号文件,你会想要它,否则你将无法在该代码中设置断点。
VS2008在bin目录下添加了几个文件[...]需要在源代码管理中添加吗?
bin 目录中的任何内容都不需要添加到源代码管理中。最初签入项目时的第一件事就是忽略 bin 和 obj 目录。所以是的,您可以删除这些文件,但 Visual Studio 会重新创建它们。