2012-12-26 1 views
1

Visual Studio 2008에서 만든 .NET 3.5 클래스 라이브러리로 작업하고 있으며 나중에 Visual Studio 2010에서 업데이트하고 다시 컴파일합니다. 가장 이상한 일이 발생했습니다. 웹 참조 중 하나 솔루션 탐색기에 나열된 DLL은 DLL로 실제로 컴파일되지 않으며 (.NET Reflector로 DLL을 검사 한 것으로 입증 됨) 오류 또는 경고가 각각 발생하지 않습니다. Google 검색 및이 사이트 검색을 시도했는데 적용 가능한 정보를 찾을 수 없었습니다. 왜 이것이 일어나고 있는지에 대한 조언은 크게 감사하겠습니다! 바라건대 제공된 정보로 충분합니다. 그렇지 않으면 더 많은 것을 제공 할 수 있어야합니다.DLL에서 누락 된 ASP.NET 웹 참조

편집 : 웹 참조의 네임 스페이스는 솔루션 탐색기에 표시되지만 개체 브라우저에는 표시되지 않습니다. 동료 중 일부는 이것이 웹 서비스 자체의 문제라고 말하고 있습니다. SAP 웹 서비스이며 개발 중에 최근에 업그레이드되어 문제가 될 수있는 테스트 환경과 연결됩니다. 그 동안 내가 이것이 확실한 이유인지 여부를 확인한 다음, 관련 정보를 공유하는 것을 주저하지 마십시오.

편집 (2) : 생성되는 클라이언트 측 오류를 포함하여 더 명확한 설명을 위해 Cyborgx37's answer에 처음 응답을 참조하십시오.

답변

1

이 약간 이해할 수있다 : 나는 개체 브라우저에 웹 참조를 얻기 위해했던 모든 - 컴파일시에 실제 DLL에 따라서는 - 다른 뭔가로 이름을 바꾼 다음 다시 복귀했다 (이름을 동일하게 유지하는 것은 선택 사항 임)로 변경하십시오. Microsoft의 이상한 문제를 좋아해야합니다. 바라기를 이것은 동일한 문제점으로 달리기 끝내는 다른 누군가를 돕는다!

+0

솔루션을 게시 주셔서 감사합니다. StackOverflow에 오신 것을 환영합니다. – JDB

0

내가 올바르게 이해하면 참조 된 어셈블리가 컴파일되지 않은 이유가 궁금 할 것입니다. DLL에 넣으십시오.

참조 된 어셈블리는 일반적으로 DLL에 컴파일되지 않습니다. DLL에는 대신 외부 리소스에 대한 포인터가 포함될 것이며 .NET은 위치를 찾은 다음 응용 프로그램에서 사용할 수 있도록 메모리에로드하기위한 몇 가지 전략 중 하나를 시도합니다.

당신은 계몽이 문서를 찾을 수 있습니다

:

How the Runtime Locates Assemblies
공용 언어 런타임 찾아 구성하는 어셈블리에 결합하는 방법을 성공적으로 .NET Framework 응용 프로그램을 배포하려면, 당신이 이해해야합니다 신청. ...

+0

내가 언급 한 프로젝트에는 거의 40 개의 웹 참조가 있습니다. 프로젝트를 컴파일 한 후, .NET Reflector를 통해 입증 된 것처럼, 하나만 제외하고 모든 Web References는 결과 DLL 모듈 내에 자체 네임 스페이스를 갖습니다. 런타임에 네임 스페이스가없는 웹 참조가 호출 될 때이 클라이언트 쪽 오류가 생성됩니다. "System.TypeLoadException : _ _ 유형 _을 어셈블리 _ [어셈블리] _에서로드 할 수 없습니다." 귀하의 즉각적이고 상세한 답변에 진심으로 감사드립니다. 그러나이 웹 참조 자료와 명확한 차이가 있기 때문에 제 질문에 대한 답변을 생각하지 않습니다. – Jesse

+0

이 정보는 귀하의 질문에 유용 할 것입니다. 불행히도이 문제가 발생하지 않았으므로 더 이상 제공 할 수있는 방법이 없습니다. – JDB

+0

충분히 구체적이지 않은 경우 사과드립니다. 나는 그것을 결국 알아 내고 나의 발견을 공유 할 것이다. 다시 한 번 감사드립니다! – Jesse