2016-10-11 2 views
1

InstallShield에 내 장비를 갈기위한 문제가 있습니다. 나는 전문가는 아니지만 3 년 넘게 IS를 사용하고 있습니다. 다음은 szenario입니다.InstallShield가 ProgramData에 복사 할 수 없습니다.

내 프로그램은 C : \ ProgramData \ [CompanyName] \ [Product Name] \ 아래에 구성 파일을 설치합니다. 업데이트를 설치할 때 이전 .cfg 파일의 이름을 .bak 파일로 바꿔서 .cfg 파일도 업데이트 할 수 있도록해야합니다. 그러나 명확한 이유가 없기 때문에 더 이상 작동하지 않습니다. 그것은 오래 된 IS2012와 수년간 일했지만 지금은 작동을 멈췄습니다. MoveFile Table과 다른 방법을 사용하여 InstallScript로 시험해 보았습니다. 아무것도 효과가 없습니다.

하지만 파일을 설치 폴더 (ProgramFiles 아래)로 이름을 변경 (복사)하려고 할 때 작동합니다. 하지만 다른 곳에서는 효과가 없습니다.

누군가 내가 지금이 폴더에 쓸 수 없다는 생각을 갖고 있습니까? 나는 매우 실망스럽고 더 이상 아이디어가 없습니다 ...

감사합니다. 그리고 나쁜 영어로 유감스럽게 생각합니다.

+0

파일을 복사하는 방법에 대한 자세한 정보를 추가하고 자세한 Windows Installer 로그에서 해당 정보 (있는 경우) 및/또는 프로세스 모니터가 실제로 발생했음을 나타내는 메시지를 찾을 수 있습니까? 너가 이미 이전 건축 안에 일하면 특히, 너무 많은 gotchas 있으면 안된다. –

+0

귀하의 코멘트 주셔서 감사합니다. 이전 작업 방법은 MoveFile 테이블의 항목이었습니다. TFS와 Installshield를 업그레이드하기 전까지는 제대로 작동했습니다. 현재 "CopyFile"명령을 사용하는 installscript로 작업하고 있습니다. 이것은 installdir을 대상 디렉토리로 설정하는 한 작동합니다. 이제는 성공적으로 저장된 파일을 올바른 디렉토리에 다시 복사해야하는 두 번째 스크립트를 추가했습니다. 그러나 이것은 잘 작동하지 않습니다. 설치의 로그 파일은 단지 하나의 암호 오류 메시지를 노출합니다 : "참고 : 1 : 2727 2 :"그러나 나는 아무것도 찾지 못했습니다. –

답변

0

.msi 패키지 빌드간에 변경된 내용을 분리하기 위해 MsiDiff 또는 유사한 도구를 사용해 볼 수 있습니다. 자세한 로그의 오류가 매우 중요 할 수 있습니다.

주 : 1 : 2727 2 :

당신이 Windows Installer Error Messages를보고 2727을 검색하면

,이 오류가

디렉토리 항목 의미 찾을 수 있습니다 '[2] 디렉토리 테이블에 존재하지 않습니다.

[2]은 메시지의 빈 값에 해당하므로 잘못 디렉토리 식별자가있는 테이블이 있음을 나타냅니다. 정품 확인을 실행하는 것과 같은 일반적인 용의자 중 일부를 시도하여 문제를 식별 할 수 있습니다. MoveFile table을 언급했으나 디렉토리 대신 속성을 사용하므로이 메시지가 표시되는지 확실하지 않습니다.

문제를 발견하고 해결하는 데 도움이되지 않으면 구체적인 세부 정보로 질문을 업데이트해야합니다.

+0

I 그 문제에 대한 해결책을 찾았습니다. 주된 문제는 RenameFile() 명령이었습니다. 이 커맨드는 소스와 INSTALLDIR 변수가 필요합니다.이 변수는 스크립트를 실행하고자 할 때 설정되지 않았습니다. 그래서 매개 변수에 직접 경로를 설정하여 ISTALLDIR 매개 변수를 피하십시오. 이 (monor) 변경 후 스크립트가 제대로 작동합니다.도와 줘서 고마워. 오류 메시지와 함께 당신의 힌트가 내 문제를 해결했습니다! :) –

관련 문제