2012-01-09 2 views
0

Visual Studio 프로젝트에 이상한 문제가 있습니다. .NET 4 프레임 워크를 사용하는 C# 응용 프로그램을 작성하고 있습니다. 일부 DLL에 대한 참조를 추가합니다 (3.5에서 컴파일됩니다). 그리고 솔루션을 빌드 할 때까지 작동합니다. 이 경우 컴파일러는 이러한 DLL 내의 네임 스페이스를 볼 수 없다는 의미에서 참조를 제거합니다. 어떤 아이디어?응용 프로그램을 컴파일 할 때 참조를 제거합니다.

오류가 :

Error 4 The type or namespace name 'XXX' could not be found (are you missing a using directive or an assembly reference?)

+0

일반적으로 이러한 종류의 동작을 사용하면 오류 및 경고 창에 경고가 표시됩니다. 내 생각에 이러한 참조 중 하나에 대한 필수 참조가 프로젝트에 없습니다. –

+1

ecopyLocal = true ..를 프로젝트에 설정하고 있습니까? ..? 또한 GAC의 경우 4.0 GAC는 3.5 GAC와 구분됩니다. – MethodMan

+2

@Neil Knight dll을 bin 디렉토리로 직접 복사 하시겠습니까? –

답변

2

이 문제를 해결할 수있었습니다. Project Properties을 확인한 결과 .Net 4 Full 프레임 워크가 아닌 .Net 4 Client Profile을 사용하고있는 것으로 나타났습니다. 이것을 전체 버전으로 변경하면 내 문제가 해결되었습니다. 문제는 Client Profile 내의 System.Web 네임 스페이스가 없어서 발생했다고 생각합니다.

1

난 당신이 다음 새 말했다 폴더에서 그들에 대한 참조를 추가하려면 솔루션에 별도의 폴더에 그 dll 파일을 저장하는 것이 좋습니다. dll을 bin 디렉토리에 직접 복사 할 때 똑같은 문제가 발생했습니다. VS는 dll의 영구 저장을위한 이상적인 후보가 아니므로 모든 dll을 깨끗한 빌드에서 지울 것입니다.

또 다른주의 사항 : I 제안 시나리오를 방지하기 위해 가정되는 옵션에도 불구하고

, 아직도 내 자신의 개인적인 경험에서 일어날 것으로 보인다 그리고 우리 모두는 VS 버그 무료 아니라는 것을 알고! = P

+0

나는이 정확한 설정을 이미 가지고 있으며 작동하지 않습니다. –

+0

또한 .config 파일을 사용하는 경우 4.0 대신 3.5 프로젝트로 프로젝트를 다시 설정할 수 있습니까? 이미 인식하지 못하고 4.0이 토큰과 함께 참조를 추가하면이 소리가 거의 들립니다 3.5 버전 4.0에서 .dll을 참조하는 것과 관련된 버전 문제와 마찬가지로 네임 스페이스를 정의하지 않고도 알 수 있습니다. – MethodMan

관련 문제