2008-08-29 5 views
19

GAC에 등록해야하는 dll의 전체 디렉토리가 있습니다. 명시 적으로 각 파일을 등록하는 것을 피하고 싶지만 gacutil에는 "register directory"옵션이 없습니다. 누구나 빠르고 간단한 해결책이 있습니까?Vista에서 GAC에 여러 어셈블리 등록

답변

34

GACUTIL은 "COM"이 아닌 DLL을 등록합니다. COM에서와 달리 GACUTIL은 파일을 % SYSTEMROOT % \ assembly 아래의 불투명 한 디렉토리에 복사하고 그 파일을 실행합니다. GACUTIL에 "폴더 등록"을 요청하는 것은 의미가 없습니다 (RegSvr32에서도 그렇게 할 수는 없습니다).

당신은 같은 명령에 대한 배치를 사용할 수 있습니다

:

FOR %a IN (C:\MyFolderWithAssemblies\*.dll) DO GACUTIL /i %a 

당신은 배치 파일에, 당신이 % A를 교체해야 함을 배치하면 %% 여기

+0

위대한 작품! 제거를 위해 다음을 사용할 수 있습니다 : FOR % a IN (C : \ MyFolderWithAssemblies \ *. dll) DO GACUTIL/uf % ~ na –

11

스크립트는 둘 것입니다 배치 파일에 현재 디렉토리에있는 모든 파일을 Gacutil에 등록합니다. 배치 파일 (명령 프롬프트에 복사/붙여 넣기 만 가능)에 넣을 필요가 없습니다.

FOR %1 IN (*) DO Gacutil /i %1 

편집 : 바우, 죄송합니다. 내가 게시 한 이전 게시물을 보지 못했습니다.

2

사용

gacutil/IL YourPathTo_A_TextFile.txt

스위치, 여러 다른 폴더에 DLL이있는 경우. 그렇지 않으면 유로에 언급 된 for ... in 루프로 이동하십시오.

텍스트 파일에는 설치해야하는 어셈블리 경로 목록 (한 줄에 하나의 경로)이 있어야합니다. 경로는 시스템 전체에 다른 폴더가 될 수도 있습니다. 명령 줄을 관리자 권한으로 실행하십시오! 여기

YourPathTo_A_TextFile.txt 예 :

C : \ ... Microsoft.Practices.EnterpriseLibrary.Common.dll C : \ ... Microsoft.Practices.EnterpriseLibrary.Configuration .Design.HostAdapter.dll C : \ ... Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapterV5.dll C : \ ... Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll C : \ .. .Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll C : \ ... Microsoft.Practices.EnterpriseLibrary.Data.dll

+0

Enterprise Library = 궁극적 인 DLL 지옥 –

관련 문제