17

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

回答

20

源控制:

本斯特劳布在这个信息的评论中表示:.dll.refresh文件应该被添加到,如果需要的源代码控制,而.xml.pdb,当然还有.dll文件不应该添加。

约翰·鲁迪解释时添加.refresh文件:

为什么这是一件好事(有时)? 假设你在一个团队 的环境中。某人在代码 中检查foo.dll,并且您的编译系统 会生成一个新的DLL,并将其输出到服务器上的 文件共享中。您的刷新 文件指向该DLL的 DLL的服务器副本。下次你建立时,VS会自动奇迹般地抓住最新的和最大的那个DLL的副本 。

的.xml像大卫Mohundro说:

的xml文件是有XML注释 和智能。Visual Studio将 解析该文件并显示在您在这些DLL中调用 方法时添加的注释XML 。

.PDB像大卫Mohundro说:

PDB中是存在的调试和 符号。如果您从中抛出异常 ,则可以获得 堆栈跟踪等。您可以控制 选择是否构建PDB为 。

.REFRESHfrom a blog post about .refresh files:

它告诉VS到哪里寻找更新的版本 具有相同基 名的dll。它们是文本文件,您可以打开 并查看它使用的路径。

他们的目的是防止您从 不得不自己复制新版本。 在VS2003中,项目文件将 包含 参考的源位置,但由于VS2005不 使用项目文件ASP.NET 项目,这是更换为 特定的功能。

+1

我唯一要添加的是* .dll.refresh文件*应该*在源代码控制中,不像bin目录中的任何其他文件。 – 2008-10-02 13:27:31

3

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

11

pdb用于调试和符号。如果你得到一个异常抛出,你可以得到堆栈跟踪等。你可以控制PDB是否被构建。 xml文件用于XML注释和intellisense。 Visual Studio将解析并显示在这些DLL中调用方法时添加的XML注释。

我不知道刷新文件。

2

VS2008将几个文件添加到bin目录[...]它们是否需要添加到源代码管理中?

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

13

刷新文件(因为没有人的命中!)描述了DLL的来源。这是用于自动刷新引用;每当你做一个完整的构建时,VS都会查找该路径并复制该版本的DLL。

为什么这是一件好事(有时)?假设你在团队环境中。有人在代码中检查foo.dll,并且你的编译系统建立一个新的DLL,并将它输出到服务器上的文件共享中。您的刷新文件指向该DLL的服务器副本。下次你编译时,VS会自动奇迹般地获取该DLL的最新和最大的副本。

+0

非常酷,不知道这一点。谢谢! – 2008-10-02 13:22:07