2011-02-10 1 views
1

응용 프로그램 대상 폴더를 설치할 기본 위치에서 IDE를 사용하여 개발할 때 가장 쉽습니다 (예 :Delphi App IDE 대상 폴더를 설치 프로그램에서 32-64 비트 사이의 기본 경로로 유지하는 방법

).
"c:\Program Files\MyAppFolder" 

결과적으로 "c : \ Program Files \ MyAppFolder"가 Delphi 프로젝트의 'Output directory'에 코드화되어 있으며 해당 폴더를 지원하는 데이터 파일로 채우는 설치 프로그램 (Innosetup)을 실행하여 개발 준비를 할 수 있습니다.

이제 Windows7 64와 Windows 7 32 사이를 이동하려고하는데 설치 프로그램에서 (32 비트) 응용 프로그램을 넣기를 원합니다. 각 프로젝트에 필요한 변화 될 것이다

"c:\Program Files (86)\MyAppFolder" 

이 : "C : \ 프로그램 파일 (86)은"그래서 나는 나의 IDE 출력을 가리 키도록해야합니다. 사용할 수있는 사전 정의 된 변수 나 32 비트 앱이있는 플랫폼간에 이동할 수있는 다른 방법이 있습니까?

답변

11

는 예를 들어 설치됩니다되는 기본 위치에서 응용 프로그램의 대상 폴더와 함께 작동하도록 IDE에서 개발할 때 그것은 가장 쉬운 방법

응용 프로그램이 사용자가 설치 어디서나 작동하도록되어

하고, 당신은 분명히 그 위치를 "기본 위치"라고 부르기 때문에 그것을 알고 있습니다. 앱은 어디서나 설치할 수 있으므로 어디에서 개발해야하는지는 중요하지 않습니다. 당신은 클라이언트가 어딘가에 응용 프로그램을 설치할 때 응용 프로그램에서 경로를 하드 코딩의 실수, 당신은 그것에 대해 알아 보겠습니다 한 경우

  • :

    귀하의 Program Files 선택은 여러 가지 이유로 나쁜 그밖에.

  • Program Files 폴더에서 개발을 수행하려면 UAC를 사용하지 않도록 설정해야합니다. 즉, 클라이언트의 UAC를 사용하도록 설정해야하므로 앱을 사용할 환경과 같은 환경에서 실제로 작업하지 않습니다 익숙한.
  • "기본 위치"에 이미 파일이 있으므로 응용 프로그램의 설치 관리자를 테스트 할 수 없습니다.
  • 프로그램 파일은 두 개의 폴더 리디렉터를 통과합니다. Program Files이라고 말하면 32 비트 응용 프로그램을 Program Files x86으로 읽는 64 비트 가상화와 Program Files 폴더에 대한 쓰기 액세스를 UserData 디렉터리의 폴더로 리디렉션하는 UAC 가상화가 있습니다.

Program Files 지뢰 지 외의 다른 디렉토리로 발전하는 것이 더 좋습니다. 내 자신의 개발을 위해 나는 다음 단계로이 응용 프로그램을 다른 컴퓨터의 다른 폴더에서 개발합니다.예 : 내 앱을 C:\Appname에 체크 아웃했습니다. 제 동료가 가지고 있습니다. D:\SomeFolder\AppName

+1

+1 더 많이 투표하고 싶습니다! –

+0

+1, 아주 좋은 답변입니다. 그러나 나는 그것이 마지막 항목에서 "던지기"대신에 "통과"라고 말해야한다고 믿습니다. 그렇지 않아야합니까? – mghie

+0

@mghie, 지적 해 주셔서 고맙습니다. @Ken, 그것을 고쳐 주셔서 감사합니다! 오후에 새로운 프로그래밍 언어를 배울 수는 있지만, 15 년 이상 영어를 배우고 나면 바보 같은 실수를 저 지르게됩니다. 우스운 일이 우리의 두뇌입니다 ... –

1

UAC를 사용하도록 설정했기 때문에이 기능이 작동하지 않습니다. 프로그램 파일 폴더 바깥에 어딘가에 붙일 수 있습니다.

2

Delphi에서 경로를 지정할 때 환경 변수를 사용할 수 있습니다.

출력 디렉토리를 $(ProgramFiles)\MyAppFolder으로 설정하십시오.

$(ProgramFiles) (Win64의 경우)은 32 비트 응용 프로그램의 경우 Program Files x(86)입니다. 델파이는 32 비트이므로 잘 작동합니다.

+0

예, 압니다 만, W64에서는 "c : \ program files (x86)"을 가리켜 야합니다. 표준 사전 정의 된 변수 'ProgramFiles (x86)'을 $()에 추가합니다. –

+0

@Brian Frost - 업데이트 된 답변. 필자는 64 비트 Win-7을 사용하고 이것을 테스트했습니다. –

관련 문제