2014-11-04 1 views
2

NSIS로 게임을위한 설치 프로그램을 빌드하려고했습니다. 대부분의 경우 잘 작동하지만 아무런 이유없이 특정 파일을 건너 뛰는 것 같습니다. 아니면 내가 알아낼 이유가 없다. 처음에는 NSIS 설치 프로그램은 컴파일하는 동안 기존 파일을 찾지 못합니다.

나는 소스 폴더의 모든 파일을 수집하기 위해이 줄을 사용했다 :

File /r "${NSISDIR}\game\source\*.*" 

그러나, 나는이 모든 것을 얻을하지 않은 것으로 나타났습니다. 그것이 모든 하위 폴더를 찾았고 계층 구조를 올바르게 유지했음을 인정했습니다. 운율이나 그것이 건너 뛴 이유가없는 것 같습니다. 그런 다음 모든 파일과 디렉토리를 개별적으로 나열하여 그 이유를 알아 냈습니다. 예 :

File "${NSISDIR}\OWTD-DE\source\pygame.math.pyd" 

이 다음과 같은 오류 발생 :

File: "C:\Program Files (x86)\NSIS\game\source\pygame.math.pyd" -> no files found. 

을하지만 그 파일이 나는 소스 폴더에 볼 수 존재한다. 누락 된 모든 파일의 경우입니다. 처음에는 이름의 두 마침표가 될 수 있다고 생각했지만 여러 파일에 명명 규칙이 있으며 잘 추가되었습니다. 이 파일을 인식하는 방법을 알아낼 수 없습니다. 어떤 아이디어?

+0

더 이상 작동하지 않는 파일 이름 샘플을 제공하고 작동하지 않는 파일 이름을 제공 할 수 있습니까? –

+0

@ RolandBär 안녕하세요. 다음은 세 줄입니다 : $ {NSISDIR} \ game \ source \ pygame.color.pyd " 파일"$ {NSISDIR} \ game \ source \ pygame.constants.pyd " 파일"$ {NSISDIR} \ game \ source \ pygame.display.pyd "'그들은 동일한 명명 규칙을 따릅니다. 또한 ls> depends.txt를 사용하여리스트를 만들었습니다. 그래서 목록을 추가 할 때 철자법과리스트가 완성되었습니다. – Gramps

답변

0

이 proc ess는 Windows Home 64-Bit에서는 잘 작동하지 않지만 Windows Professional 64-bit에서는 잘 작동하지 않았습니다. 이 문제가 NSIS 자체인지 또는 무엇인지는 모르겠지만 OS를 제외하고는 두 가지 사항이 다릅니다. 그리고 두 운영체제 간에는 큰 차이가 없습니다. 그러나 두 구성 간의 일부 구성 차이가 실제 문제였습니다.

해결 된 것으로 표시되었지만 실제 문제와 해결책이 무엇인지 모릅니다.

1

${NSISDIR}은 Contrib 하위 폴더의 UI 리소스에 액세스하는 데 사용되는 정의이므로 사용자가 파일을 저장하지 않아도됩니다. 소스 파일은 Program Files에 있으면 안되며, 설치된 파일 만이 Program Files에 있어야합니다. 또한 64 비트 시스템에는 두 개의 Program Files 폴더가 있으며 Windows에서 % ProgramFiles %와 관련된 몇 가지 호환성 해킹이 있으므로 원본 파일을 최적으로 배치하지 못합니다. 해당 파일을 참조 그냥 있기 때문에 프로그램 파일에 실제로 존재 의미하지 않는다, 그것은

는 일반적으로 당신이 나머지와 같은 디렉토리 트리에 어딘가에 .nsi을 유지하는 것입니다 ... UAC Virtualization/VirtualStore 당신을 속여 수 파일의 당신은 상대 경로를 사용할 수 있지만 당신이 정말로 원한다면 당신은 또한 정의 사용할 수 있도록 :

!define MYSOURCE "c:\foo\bar" 

... 

Section 
File /r "${MYSOURCE}\*.*" 
SectionEnd 

아직도 내가 그렇게 당신이 낮은 수준의 세부 정보를 볼 수 Process Monitor를 시도 제안 일부 파일이 골대를 벗어났습니다합니다. ..

+0

Program Files에서 파일을 C : base로 옮기려고 시도했지만 여전히 그 파일을 추가하지 않습니다. 또한 듀얼 부팅을 통해 Linux에서 드라이브를 볼 수 있으며 숨겨진 확장없이 파일이 손상되지 않았 음을 보여줍니다. 아주 이상한 문제. 나는 프로세스 모니터를 시도하고 정의 할 것이다! – Gramps