이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 38548|회답: 2

[출처] 프로젝트 클래스 라이브러리를 참조할 때 dll.refresh 파일의 영향

[링크 복사]
게시됨 2020. 5. 4. 오후 8:42:50 | | |
우리 모두 알다시피, .net 프로그램은 생성된 후 bin 디렉터리에서 .dll 파일을 생성하지만, .dll.refresh 파일은 어디서 오는 건가요? 그날 구글에서 'boredom'을 검색해보니, 프로젝트 내에서 서드파티 어셈블리(직행)를 참조할 때 자동으로 생성된다는 것을 알게 되었습니다. 이 .refresh 파일은 해당 서드파티 파일의 원래 파일 경로를 저장합니다. 이 경로의 DLL이 업데이트되면 프로젝트가 생성되면 어셈블리가 이 주소에 따라 업데이트되고 변경됩니다. 이 파일이 없으면 VS는 참조된 어셈블리를 최신 상태에 맞게 업데이트할 수 없으며, 이로 인해 어셈블리 버전이 잘못되는 문제가 발생할 수 있습니다. 작은 디테일이 큰 문제로 이어질 수 있으니, 모두 집중하세요!

웹사이트의 새 버전이 출시되었고, 한 라이브러리가 자동으로 업데이트되지 않고 오래된 버전이 자동으로 생성되는 심각한 문제가 발견되었습니다.

조사 결과, VSS의 dll.refresh 파일과 관련이 있었습니다.

이유는 간단합니다:

1。 개발 과정에서 다른 외부 DLL 참조가 웹사이트에 추가되면 시스템이 자동으로 새로고침 파일을 생성하며, 이 솔루션 하에 다른 프로젝트 DLL 참조가 추가되면 이 파일이 생성되지 않습니다

2。 리프레시 파일은 dll을 자동으로 업데이트할 경로를 지정하며, 라이브러리 참조라면 Dubug 또는 Release 디렉터리를 지정합니다. 이번에 오류가 발생하는 파일은 Debug 디렉터리입니다

3。 개발자가 실수로 파일을 VSS 코드베이스에 체크인했습니다

4。 문제는 참조 라이브러리가 첫 버전 출시 이후 여러 번 변경되었지만 인터페이스는 변하지 않아 라이브러리가 별도로 생성되고, 모든 애플리케이션의 해당 DLL(릴리스 버전)만 업데이트되어 문제가 없었다는 점입니다. 하지만 애플리케이션이 재게시될 때는 프로젝트의 BIN 디렉터리에 새로고침 파일이 존재하기 때문에 DLL이 해당 파일에 지정된 경로로 자동으로 업데이트되어 이전 버전인 DLL(디버그 버전)이 출시됩니다.

문제 해결:

앱에서 dll.refresh 파일을 삭제하고 앱을 다시 게시하세요

또는 dll.refresh에서 내용을 수정하고 dll 경로를 올바르게 작성하는 것도 좋습니다





이전의:데이터베이스 스키마: CQRS로 읽기 및 쓰기 분리
다음:프록시 설정 및 취소하는 NPM 방법
 집주인| 게시됨 2020. 5. 4. 오후 8:44:32 |
VS2005에서 외부 dll 파일을 참조하면 .refresh라는 확장자가 생성됩니다.
System.Web.Extensions.dll을 참조하면 자동으로 System.Web.Extensions.dll.refresh가 생성되며, 이 dll의 절대 경로를 포함합니다.
참고: 삭제 후 VS2005는 파일 경로를 통해 참조한 dll을 bin 디렉터리로 자동으로 업데이트하지 않습니다. 즉, 참조한 DLL이 업데이트되었다면 직접 수동으로 다시 참조해야 한다는 뜻입니다.
 집주인| 게시됨 2020. 5. 17. 오전 11:51:33 |
테스트
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com