2017-05-01 3 views
1

내 프로젝트에서 다음을 사용하여 Project bin \ debug 디렉토리 (bin \ debug \ fichiers)의 "Ficheirs"폴더에 Excel 파일을 저장하는 지침이 있습니다. Directory.GetCurrentDirectory() + "\ Fichiers"로 경로 설정 그게, 설정을 만들기 전에 잘 작동 그러나 inno 설치 컴파일러를 사용하여 설치 프로그램을 만든 다음 설치 프로그램을 만들 때 "Ficheirs"폴더를 추가하면 프로그램이 작동하지 않습니다. 내 프로그램이 저장을 유지하도록 수정하는 방법 그 폴더에 내 엑셀 파일?Inno setup Compiler로 설정을 생성 한 후 (app 디렉토리 내부의) 디렉토리에 파일을 저장할 때 프로그램이 멈 춥니 다?

+1

는 로그를 추가 하시겠습니까? 나는 그것이 허가 문제라고 생각할 것이다. Btw. Paths를 수동으로 연결하는 대신 Path.Combine()을 사용하는 것이 좋습니다. – Philippe

+0

어디서 프로그램을 설치합니까? –

+0

"중지"및 "작동하지 않음"이란 무엇을 의미합니까? 구체적으로 말하십시오! 그것은 무엇을합니까? –

답변

0

Directory.GetCurrentDirectory() + "\Fichiers"

이 디렉토리 경로를 설정하는 매우 신뢰할 수없는 기능입니다. 테스트를 거치지 않고 응용 프로그램은 GetCurrentDirectory()을 요구할 때 다른 디렉토리에서 작동 할 수 있습니다.

설정의 작업 디렉토리가/앱이 순간에 당신이 실행 예를 들어 GetCurrentDirectory()

  • 앱 \ 빈 \
  • \
  • 앱 \ 빈 \ 디버그 \

,

GetCurrentDirectory()+ "\Fichiers" 반환

  • D : \ 프로그램 \ 응용 프로그램 \ Fichiers
  • D : \ 프로그램 \ 응용 프로그램 \ 빈 \ Fichiers
  • D : \ 프로그램 \ 응용 프로그램 \ 빈 \ 디버그 \의 Fichiers

[Dirs] 
Name: "{app}\bin" 
Name: "{app}\bin\debug" 
Name: "{app}\bin\debug\Fichiers" 
: 당신은 필요한 모든 DIRS 다음은 설치시 강제적으로

는 [DIRS] 섹션의 예입니다 당신이 어디에 프로그램 블록을 아는 C#을
테스트 내부

try 
    { 
     // Set the current directory. 
     string target = Application.StartupPath + "\\bin\\debug\\Fichiers"; 
     if (!Directory.Exists(target)) 
     { 
      Directory.CreateDirectory(target); 
     } 
      // Change the current directory. 
      Environment.CurrentDirectory = (target); 
    .............. 

설정 ISS을 쓰기 전에

[Code] 
var 
excelPath : String; 

.............. 
excelPath := ExpandConstant('{app}\bin\debug\Fichiers'); 
+0

감사합니다. [Dirs] 섹션이 작동했습니다. – Elba

+0

그것은 [Dirs]를 도왔습니다. 그럼에도 불구하고'GetCurrentDirectory()'를 사용하여 경로를 생성하면 안됩니다. 대신에'Application.StartupPath'를 사용하십시오. –

관련 문제