내 볼륨 섀도우 복사 서비스 요청자가 실패하는 이유 : CreateVsssbackupcomponentsinnalal을 찾을 수 없습니다.

StackOverflow https://stackoverflow.com/questions/789754

  •  16-09-2019
  •  | 
  •  

문제

VSS 요청자를 구현했으며 Windows Server 2008에서 컴파일 및 실행을 연결하지만 Windows Server 2003에서 실행되지 않습니다. 요청자가 DLL 내부에 있으므로 DLL이로드되지 않습니다. 사용 의존성 워커, 나는 내 dll이 vssapi.dll을 찾는다는 것을 발견했지만, 그것은 다음을보고한다.

Error: At least one required implicit or forwarded dependency was not found.

내 vssapi.dll을 보면 찾을 수 없습니다 CreateVssBackupComponentsInternal, vssapi.dll은 완전히 다른 것을 내 보냅니다. ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z.

도움이 되었습니까?

해결책

VSS는 Windows XP, Windows Server 2003 및 Vista/Windows Server 2008을 포함한 각 플랫폼 및 OS에 대해 특별히 컴파일 및 타겟팅해야합니다.

VSS 요청자를 완전히 지원하는 최초의 Microsoft SDK는 v6.1이며 Vista에서 실행되는 요청 자만 지원합니다. Windows Server 2003 또는 XP에서 실행하려는 경우 :

  • 다운로드 VSS SDK 7.2.
  • VSS SDK에서 적절한 디렉토리를 검색하려면 포함 및 라이브러리 경로를 설정하십시오.

다음은 Alphavss가하는 일입니다 config.h, 그러나 VSS SDK의 vshadow 샘플은 다음과 같습니다. 포함 및 라이브러리 경로 만 설정합니다. Vshadow를 따르는 것이 성공할 가능성이 더 높다고 제안합니다. 그러나 완전성을 위해 :

Windows XP를 타겟팅하는 경우 :

#define NTDDI_VERSION NTDDI_WINXPSP2
#define _WIN32_WINNT _WIN32_WINNT_WINXP
#define WINVER _WIN32_WINNT

Windows Server 2003을 타겟팅하는 경우 :

#define NTDDI_VERSION NTDDI_WS03SP1
#define _WIN32_WINNT _WIN32_WINNT_WS03
#define WINVER 0x501

Vista를 대상으로하는 경우 VSS SDK를 참조하지 마십시오. 대신 Windows 6.1 SDK를 참조하고 :

#define NTDDI_VERSION NTDDI_WS08
#define _WIN32_WINNT _WIN32_WINNT_WS08
#define WINVER _WIN32_WINNT

나는 이것에 대한 모든 크레딧을받을 수 없다. 나는 알파이스 (보다 발표), VSS를 .NET 코드에 노출시킵니다. MSDN은 매우 도움이되지 않은 것 같습니다. 그러나, 그 vshadow 공구 및 샘플은 VSS 요청자를 컴파일하는 방법의 예를 제공했습니다.

또한 X64 또는 IA64 대 X86에 대해 다시 재 컴파일해야합니다. 즉, 모든 플랫폼을 지원하기 위해서는 9 개의 컴파일 된 버전의 실행 파일이 필요합니다.

다른 팁

Alphavss도 정의뿐만 아니라 경로를 설정한다고 덧붙이고 싶었습니다. 이것은 두 경우 모두 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top