17

ASP.Net 프로젝트에 대한 참조로 DLL을 추가 할 때 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의 해당 서버 복사본을 가리 킵니다. 다음 번에 빌드하면 VS는 이 자동으로 마술처럼 가장 최신의 DLL을 가져옵니다.

.XML 데이비드 Mohundro 같은는 말했다 :

XML 파일은 XML 주석 및 인텔리을 위해 존재한다.Visual Studio는 을 구문 분석하고 해당 DLL에 메서드를 호출 할 때 추가 된 XML 주석을 표시합니다. 데이비드 Mohundro 같은

의 .pdb

는 말했다 :

PDB의 디버깅 및 심볼이있다. 예외가 발생하면 stacktraces 등을 얻을 수 있습니다. 을 선택하면 PDB가 인지 여부를 결정할 수 있습니다. 그것은 VS 어디 동일한 기본 이름을 가진 DLL의 업데이트 버전을 찾기 위해 알 때 .refreshfrom a blog post about .refresh files:

. 텍스트 파일이므로 을 열어서 사용중인 경로를 볼 수 있습니다.

그들의 목적은 에서 새 버전을 직접 복사하지 못하도록하는 것입니다. VS2003의 프로젝트 파일은 에 참조의 소스 위치가 포함되어 있지만 VS2005는 프로젝트의 프로젝트 파일을 으로 사용하지 않으므로이 기능은 을 대체합니다.

+1

내가 추가 할 수있는 유일한 것은 * .dll.refresh 파일 *은 bin 디렉토리의 다른 것과는 달리 소스 제어에 있어야한다는 것입니다. –

+0

게시물에 추가되었습니다. – xsl

+0

.dll.refresh를 소스 제어에 적용하는 것과 관련하여 - DLL이 일부 파일 서버에 없지만 로컬에 저장되어 있고 각 개발자가 자신의 복사본을 가지고 있다면 어떻게됩니까? 나는 이것이 John Rudy가 "때때로"라고 말하는 이유라고 생각합니다. – OregonGhost

3

foo.pdb는 foo.dll의 디버거 심볼 파일이므로 원하는 경우 해당 코드에 중단 점을 설정할 수 없습니다.

11

pdb는 디버깅 및 심볼 용입니다. 예외가 발생하면 스택 트레이스 등을 얻을 수 있습니다. PDB의 빌드 여부를 선택할 수 있습니다. xml 파일은 XML 주석과 인텔리 센스를위한 것입니다. Visual Studio는이를 파싱하여 해당 DLL의 메서드를 호출 할 때 추가 된 XML 주석을 표시합니다.

새로 고침 파일에 대해 알지 못합니다.

2

VS2008은 여러 파일을 bin 디렉토리에 추가합니다. [...] 소스 제어에 추가해야합니까?

소스 제어에 bin 디렉토리의 내용을 추가해야합니다. 처음 프로젝트를 체크인 할 때 가장 먼저하는 일 중 하나는 bin 및 obj 디렉토리를 무시하는 것입니다. 그래서 예, 당신은 이러한 파일을 삭제할 수 있지만 Visual Studio 그들을 다시 만듭니다.

13

DLL은 어디에서 왔는지 설명하는 새로 고침 파일입니다. 자동 새로 고침 참조 용입니다. 전체 빌드를 수행 할 때마다 VS는 해당 경로를보고 해당 버전의 DLL을 복사합니다.

왜 이것은 (때로는) 좋은 것입니까? 팀 환경에 있다고 가정 해 보겠습니다. 누군가 foo.dll에 대한 코드를 검사하고 빌드 시스템이 새 DLL을 빌드하여 서버의 파일 공유에 출력합니다. 새로 고침 파일은 해당 DLL의 서버 복사본을 가리 킵니다. 다음 번에 빌드하면 VS는 자동으로 해당 DLL의 최신 사본을 가져옵니다.

+0

매우 근사하며 그것에 대해 알지 못했습니다. 감사! –