2012-01-27 5 views
5

MSDN에는 gacutil.exe is not safe to use for production servers이 나와 있습니다. 이 문제에 대한 합법적 인 이유가 있습니까? 아니면 Microsoft에서 CYA를 조금만 연습하고 계십니까? 이 경고는 무시해도 안전합니까? 아니면 마침내 Microsoft Windows Installer 2.0을 사용하는 방법을 배워야합니까?gacutil.exe를 사용하여 프로덕션 어셈블리를 안전하게 설치할 수 있습니까?

MSDN의 정확한 표현 :

Gacutil.exe를 개발 목적으로 만하고 전역 어셈블리 캐시에 생산 어셈블리를 설치하는 데 사용되어서는 안된다.

+0

"안전하지 않습니까?" 그 말씨는 어디에 나타 납니까? –

+0

죄송합니다. 나는 내가 조금 추측하고 있었다고 생각한다. 그것은 단지 개발 목적을위한 것이라고 말했다. MSDN 언어가 추가되었습니다. – Jeff

+0

좋습니다. 그 내용을 확인하고 미래의 독자를 혼동하지 않기를 원했습니다. :) –

답변

5

전역 어셈블리 캐시의 항목은 프로그램간에 공유됩니다.

Gacutil을 사용하여 캐시에 어셈블리를 추가하면 해당 어셈블리에 종속 된 항목의 참조 계산이 수행되지 않습니다. 따라서 GacUtil/U를 사용하여 캐시에서 라이브러리를 제거하면 해당 라이브러리에 의존하는 다른 프로그램이 손상 될 수 있습니다.

대조적으로 Windows Installer 2.0은 카운트를 유지하고 다른 프로그램이 필요하지 않을 때만 어셈블리 캐시에서 라이브러리를 제거합니다.

+0

이 답변은 기술적으로 한스보다 더 나은 제 질문에 대답했습니다 (한스가 질문을 읽고 도움이되었다고하더라도). 감사! – Jeff

3

gacutil.exe를 대상 컴퓨터에서 사용할 수 없기 때문입니다. 이것은 Windows SDK의 일부이며 .NET 4.0 버전은 C : \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools에 있습니다. Visual Studio를 설치했기 때문에 컴퓨터에 설치되어 있습니다.

설치 프로그램을 사용하면됩니다. 설치 프로젝트에서 파일 시스템 창을 마우스 오른쪽 단추로 클릭하고 특수 폴더 추가를 클릭 한 다음 "전역 어셈블리 캐시 폴더"를 선택합니다. 그리고 거기에 DLL을 넣으십시오.

+0

다른 좋은 점. 나는 그것에 대해 생각하지 않았지만 그것은 VS로 설치 될 것입니다. 그렇죠? –

+0

프로덕션 머신에서 제대로 작동하지 않는다는 것을 알고 있습니다.하지만 쉘 확장이 문제가되어서 그냥 복사 할 수 있다고 생각했습니다. – Jeff

+1

셸 확장은 .NET 4에서 더 이상 사용할 수 없습니다. GAC가 c : \ windows \ assembly에서 c : \ windows \ microsoft.net \ assembly로 이동했는지 조심하십시오. –

관련 문제