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

有帮助吗?

解决方案

来源控制:

Ben Straub在对这篇文章的评论中说:如果需要, .dll.refresh 文件应添加到源代码控制中,而 .xml .pdb ,当然不应添加 .dll 文件。

John Rudy解释了何时添加 .refresh 文件:

  

为什么这是一件好事(有时候)?   假设你是一个团队   环境。有人检查代码   for foo.dll和你的构建系统   构建一个新的DLL,输出它   服务器上的文件共享。你的刷新   文件指向该服务器副本   DLL。下次你建立时,VS会   自动神奇地抓住最新的和   该DLL的最大副本。

.xml 就像David Mohundro所说:

  

xml文件用于XML注释   和intellisense。 Visual Studio会   解析并显示XML   您致电时添加的评论   这些DLL中的方法。

.pdb 就像David Mohundro所说:

  

pdb用于调试和   符号。如果你得到例外   抛出它,你就能得到   stacktraces等。你可以控制   选择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将重新创建它们。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top