2010-03-02 4 views
4

GAC에있는 MySQL 커넥터를 사용하는 .Net 프로젝트가 있습니다.GAC에서 Nant Cant 찾기 어셈블리

내 Nant 빌드 파일에 CSC에 GAC에서이 dll (또는 유형 정보)을 찾고 내 프로젝트를 빌드하지 못하게하는 방법이있는 것 같습니다.

Nant에게이 참조가 존재하고 Gac에 있음을 알리는 방법이 있습니까?

정말 분명히 모든 Microsoft 라이브러리 때문에 예를 들어 그 wierd. "시스템"은 GAC에 있으며, 그것들을 참조하는 anythign을 만드는 데 문제가 없습니다. 나는 MySQL 커넥터가 Gac에도 있음을 확인했다.

감사합니다.

+2

실제 컴파일을 위해 msbuild에 위임하는 것이 좋습니다 –

+0

이것은 필요한 것입니다. 이제는 MSBuild를 사용하여 모든 것이 잘되어 가고 있습니다. – Remotec

답변

3

csc는 현재 디렉토리, 프레임 워크 디렉토리,/lib 스위치에 언급 된 디렉토리, LIB 환경 변수에 언급 된 디렉토리에서 DLL을 찾습니다.

그러나 GAC에는 없습니다. csc /r:full_path_to_the_gac_file.dll로 컴파일 할 수 있지만 작동은하지만 사용자에게 친숙하지 않습니다.

.NET 어셈블리는 GAC와 프레임 워크 디렉터리 (이유를 설명하는)의 두 위치에 설치됩니다.

필요한 디렉터리에 필요한 DLL을 복사하고/lib 스위치를 사용하여 참조해야합니다. 물론 런타임에는 GAC에서 가져옵니다.

<csc output="../bin/output.dll" target="library"> 
<references> 
    <include name="\%windir%\assembly\AForge.dll" /> 
</references> 
<sources> 
    <include name="**/*.cs" /> 
</sources> 
</csc> 

당신은 또한 검색 경로에 \ % WINDIR의 \ 어셈블리를 추가 할 LIB 태그를 사용할 수 있지만은 NAnt 문서에서 사용되지 않는 것으로 표시되어

0

또 다른 (휴대 성) 솔루션이 될 수 있습니다.

관련 문제