다음을 통해 공유


IAssemblyCache::UninstallAssembly 메서드(winsxs.h)

UnistallAssembly 메서드는 병렬 저장소에서 어셈블리에 대한 애플리케이션 참조를 제거합니다. 다른 애플리케이션에서 어셈블리에 대한 다른 참조가 없으면 어셈블리를 사용할 수 없게 됩니다. Windows는 병렬 저장소에서 어셈블리의 파일을 제거하고 나중에 디스크 공간을 회수할 수 있습니다.

구문

HRESULT UninstallAssembly(
  [in]            DWORD                       dwFlags,
  [in]            LPCWSTR                     pszAssemblyName,
  [in]            LPCFUSION_INSTALL_REFERENCE pRefData,
  [out, optional] ULONG                       *pulDisposition
);

매개 변수

[in] dwFlags

이 매개 변수는 0이어야 합니다.

[in] pszAssemblyName

어셈블리의 완전히 지정된 강력한 이름을 포함하는 null로 끝나는 문자열 값에 대한 포인터입니다. 전체 이름이 제공되지 않으면 결과가 정의되지 않습니다.

[in] pRefData

제거되는 어셈블리에 대한 참조를 보유하는 애플리케이션을 설명하는 FUSION_INSTALL_REFERENCE 구조체에 대한 포인터입니다. 이 값이 null이면 애플리케이션별 어셈블리에 대한 참조가 병렬 저장소에 남아 있지 않고 어셈블리의 파일이 제거됩니다.

참고 \, /, :, ;, *, <, >및 | 문자가 참조 ID에 잘못되었습니다.
 

[out, optional] pulDisposition

수행된 작업을 설명하는 정수 값에 대한 포인터입니다.

pulDisposition 매개 변수는 다음 값 또는 null 중 하나를 포함할 수 있습니다.

의미
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED
어셈블리 파일이 병렬 저장소에서 제거되었습니다.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE
애플리케이션이 어셈블리를 사용하므로 어셈블리의 파일이 제거되지 않았습니다.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED
어셈블리가 병렬 저장소에 없습니다.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING
예약되어 있습니다.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES
병렬 저장소에 다른 애플리케이션의 어셈블리에 대한 참조가 포함되어 있으므로 어셈블리의 파일이 제거되지 않았습니다.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND
pRefData에 지정된 참조가 병렬 저장소에 없습니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 값 설명
S_OK
어셈블리의 파일이 병렬 저장소에서 제거되었습니다.
S_FALSE
작업이 성공했고 어셈블리에 대한 참조가 제거되었습니다. pulDisposition에서 반환된 값에 설명된 이유로 어셈블리 파일이 병렬 저장소에서 제거되지 않았습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winsxs.h
DLL Sxs.dll

추가 정보

IAssemblyCache