17

在添加 DLL 作为对 ASP.Net 项目的引用时,VS2008 会在 bin 目录中添加几个文件。如果 DLL 被称为 foo.dll,VS2008 会添加 foo.dll.refresh、foo.pdb 和 foo.xml。我知道 foo.dll 是什么 :-),为什么 VS2008 会添加其他三个文件?这三个文件有什么作用?我可以删除它们吗?是否需要将它们添加到源代码管理中?

4

5 回答 5

20

源代码控制:

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 项目,因此这是该特定功能的替代品。

于 2008-10-02T13:21:04.107 回答
13

刷新文件(因为还没有人点击它!)描述了 DLL 的来源。这是用于自动刷新引用;每当您进行完整构建时,VS 都会在该路径中查找并复制该版本的 DLL。

为什么这是一件好事(有时)?假设您处于团队环境中。有人签入 foo.dll 的代码,您的构建系统构建一个新的 DLL,将其输出到服务器上的文件共享中。您的刷新文件指向该 DLL 的服务器副本。下次构建时,VS 将自动获取该 DLL 的最新和最棒的副本。

于 2008-10-02T13:20:22.017 回答
11

pdb 用于调试和符号。如果您从中抛出异常,您将能够获得堆栈跟踪等。您可以控制选择是否构建 PDB。xml 文件用于 XML 注释和智能感知。Visual Studio 将解析并显示当您调用这些 DLL 中的方法时添加的 XML 注释。

我不知道刷新文件。

于 2008-10-02T13:16:52.057 回答
3

foo.pdb 是 foo.dll 的调试器符号文件,你会想要它,否则你将无法在该代码中设置断点。

于 2008-10-02T13:14:52.420 回答
2

VS2008在bin目录下添加了几个文件[...]需要在源代码管理中添加吗?

bin 目录中的任何内容都不需要添加到源代码管理中。最初签入项目时的第一件事就是忽略 bin 和 obj 目录。所以是的,您可以删除这些文件,但 Visual Studio 会重新创建它们。

于 2008-10-02T13:18:40.773 回答