2009-03-11 3 views
1

아마도이 질문을 잘못하고 있습니다. Google이 도움이되지 않는 이유가 여기에 있습니다.하지만 여기에 있습니다.VS C# 컴파일러가 참조의 참조를 컴파일하지 않는 경우의 시나리오는 무엇입니까?

Visual Studio에서 C# 프로젝트를 컴파일 중입니다 (시작 프로젝트). 프로젝트 B는 프로젝트 C에 대한 참조를 가지고 있으므로 A가 빌드되면 B의 dll은 C의 dll과 마찬가지로 A의 bin 디렉토리에 배치됩니다 (B는 C가 필요하기 때문에, A는 B가 필요함). 그러나 프로젝트 C의 dll이 솔루션을 다시 빌드 할 때 프로젝트 A의 bin 디렉토리로 이동하지 않도록 최근에 일부 변경 작업을 수행 한 것 같습니다. 나는이 일을하기 위해 무엇을했는지 전혀 모른다.

솔루션 자체의 설정을 수정하지 않았으며 프로젝트 파일에 대한 추가 참조 만 추가했습니다. 코드 현명한, 프로젝트 C에서 클래스를 참조하는 프로젝트 B의 실제 코드 대부분을 주석 처리했지만 프로젝트 자체에서 참조를 제거하지는 않았습니다 (이 문제는 중요하지 않다고 생각합니다). 아마도 C# 컴파일러가 Project C를 구축하지 못하도록 어떻게 든 최적화되었다고 들었지만 실제로는 아이디어가 없습니다. 나는 누군가가 비슷한 무언가에 뛰어든 것 같아.

어떤 생각? 감사!

답변

0

솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 프로젝트 종속성을 확인할 수 있습니다.

내 생각 엔입니다, 어떻게 든, 당신은 B가 또는 C.

의존하지 않는 플래그했습니다 솔루션 속성에서 현재 구성이 프로젝트 C.

을 구축하도록 설정되어 있는지 확인
1

빌드 구성을 변경 했습니까? Visual Studio 2008에서 기본 솔루션 구성은 디버그 및 릴리스이며 기본 솔루션 플랫폼은 모든 CPU입니다. 내 경험에 비추어 볼 때 솔루션 구성/플랫폼 쌍에는 고유 한 빌드 구성이 있습니다. 즉, 디버그/모든 CPU릴리스/모든 CPU은 두 개의 독립 빌드 구성이며 각 구성은 고유 한 설정을 사용합니다. 다른 구성을 선택한 경우 원래 구성의 설정이 자동으로 적용되지 않습니다. 당신은 당신의 솔루션에 추가하는 새로운 프로젝트뿐만 아니라 모든 구성에 대한 종속성을 설정해야합니다.

관련 문제