2012-05-31 2 views
5

내 inno 설치 프로그램을 사용하여 프로그램을 배포하려고합니다. 프로그램 파일 폴더에 내 프로그램을 설치하는 것은 불가능한 것 같습니다 (예 : 내 프로그램은 데이터베이스를 수정하는 프로그램의 일부를 사용하여 문제가 발생합니다. 관리자). 나는 어딘가에 우리가 inno 설치 프로그램에 CSIDL_APPDATA에 프로그램을 설치하도록 요청해야한다고 읽었지 만, inno 설정에 정통하지는 않습니다. Inno 설정을 사용하여 어떻게합니까?모든 사용자를위한 응용 프로그램 및 데이터베이스 설치

+3

아마 당신이 읽은 것을 오해하고 CSIDL_APPDATA에 데이터 파일을 배포하고 프로그램을 파일로 배포하는 것이 좋습니다. –

답변

9

응용 프로그램 자체는 {pf} (프로그램 파일) 아래 폴더에 설치해야합니다. 그러나 응용 프로그램 데이터 (또는 데이터베이스)는 {commonappdata} 아래의 폴더로 이동해야합니다. 일반 사용자가 데이터베이스를 수정하려면 Permissions 매개 변수를 사용하여이 폴더에 대한 사용 권한을 설정해야합니다. 사용자별로 다르면 기본값을 사용자의 appdata 폴더로 복사하고 수정할 수 있습니다.

[Dirs] 
Name: {commonappdata}\i-Catcher Console; permissions: everyone-modify admins-full; 

데이터베이스 자체에 UI가 내장 된 Access 응용 프로그램을 사용할 때 문제가 발생합니다. 이 경우 두 위치가 서로 나쁜 점이 있지만 ({commonappdata}/blah이 더 좋음) 적절한 권한을 설정해야합니다.

+0

하지만 데이터베이스와 응용 프로그램을 다른 폴더에 넣으면 내 C# 코드에서 문자열을 사용하기 때문에 connString = "Data Source = recipes.db"; 이것은 recipes.db가 주 실행 파일과 동일한 폴더에 있어야한다는 것을 의미합니다. – imin

+0

어쨌든 그것은 다양한 상황에서 실패 할 것입니다. 응용 프로그램 데이터 폴더를 확인하고 정규화 된 경로를 사용하도록 수정해야합니다. – Deanna

+1

emmm .. 어떻게 C#에서 그렇게합니까? 나는 문자열과 같은 것을 의미합니다. connString = "데이터 소스 ="+ installedfolder + "recipes.db" – imin

관련 문제