2010-12-30 24 views
1

어셈블리를 (DSL)에서 생성 했으므로 프로젝트에서이 어셈블리에 대한 참조를 만들어야합니다.구성 종속 어셈블리 참조

그러나 디버그 프로젝트 구성에서 디버그 어셈블리에 대한 참조와 릴리스에서 릴리스하고 싶습니다.

달성 할 수 있습니까?

+3

두 프로젝트가 동일한 솔루션에 있으면 자동으로 작동합니다. –

+0

이 어셈블리는 외부 컴파일러에 의해 DSL에서 생성됩니다. 게시하기 전에 읽으십시오. – user536232

+0

"외부 컴파일러"는 회신 코멘트에만 표시되는 내용이므로 VS가 DSL 도구와 VS를 잘 통합하고 DSL 기반을 가질 수 있다는 점을 감안할 때 John이 자신의 대답에 잘못되었다는 것을 알지 못합니다. 프로젝트 및 "일반"프로젝트를 동일한 솔루션에 포함시킵니다. DSL 도구/컴파일러에 대한 자세한 내용을 질문에 추가해야 할 수도 있습니다. DSL 빌드가 오래된 경우 빌드 프로세스가 어떻게 작동합니까? –

답변

3

그래, 내가 찾은 ... 어셈블리 참조는 "Debug"/ "Release"경로 부분 대신 $ (Configuration)을 사용하여 프로젝트 파일에서 수동으로 편집 할 수 있습니다. 문제없이 작동합니다.

0

글쎄, 빌드 이벤트로 DSL에서 어셈블리 생성을 추가하면 올바른 버전의 어셈블리 (디버그/릴리스)를 생성 할 수 있습니다. 구성 이름은 매크로 [$(ConfigurationName)]로 사용할 수 있습니다. 또한 이미 생성 된 DSL과 수정되지 않은 어셈블리 생성을 건너 뛰려면 명령 줄에서 똑똑해야합니다. 즉, 구성에 따라 다른 중간 대상 위치를 가져야하고 그 위치에서 다른 주요 위치로 복사해야한다는 의미입니다 (파일이 수정 된 경우). 이 다른 위치는 프로젝트에서 어셈블리를 참조 할 위치입니다.

+0

이 경우, config를 변경 한 후에 빌드하면 생성 된 어셈블리 버전이 잘못된 프로젝트가 생성됩니다. 나는이 솔루션을 매우 좋아한다고 말할 수는 없지만 더 나은 것이 없다면 제대로 작동 할 것입니다. – user536232

+0

@ user536232, 특정 폴더 (예 : Obj \ Debug \ dsl.dll, Obj \ Release \ dsl.dll)에서 특정 어셈블리에 생성 된 어셈블리를 생성 한 다음 참조 할 위치에서 bin 폴더로 복사하도록 제안했습니다. 그래서 당신은 항상 특정 설정 폴더에서 어셈블리를 복사하기 때문에 스위치 설정은 중요하지 않습니다. – VinayC