2009-04-29 2 views
4

일반 WiX 설치 프로그램이있는 일반 Windows Forms 응용 프로그램이 있으며 모든 사용자에 대해 Program Files 폴더에 예상대로 설치되어 있습니다. 응용 프로그램은 System.AddIn framework을 사용하여 추가 기능을 호스팅합니다. System.AddIn 파이프 라인은 어디에 설치해야합니까?

System.AddIn 프레임 워크는 추가 기능 파이프 라인 폴더 (AddIns, AddInSideAdapters, AddInViews, ContractsHostSideAdapters) I가 추가 기능을 설치하는 가장 좋은 장소를 모르는 일부에 기록 할 필요가 있기 때문에

. 사용자에게 쓰기 권한이 없기 때문에 Program Files에 설치할 수 없으며 사용자의 Application Data 폴더에 설치하면 다른 사용자를 위해 추가 기능이 설치되지 않습니다.

나는 여기에 상충되는 요구 사항이 있음을 알고 있습니다 (사용자는 다른 사용자의 추가 기능을 망칠 수 없으며 모든 사용자를 위해 추가 기능을 설치해야하며 모든 사용자는 쓰기 권한이 필요합니다). 실용적인 경로 걸릴까요?

System.AddIn 프레임 워크에서 작성해야하는 파일을 Application Data에 별도로 저장할 수는 없지만 이는 프레임 워크의 제한 사항으로 보입니다.

답변

2

나는이 질문은

당신이 Environment.SpecialFolder.CommonApplicationData를 시도 ... 오래 전에 물었지만 있었는지?

Vista/Windows 7의 경우이 폴더는 %ProgramData%입니다. 나는 그것이 Windows XP에서 무엇인지 100 % 확신하지는 않지만 아마도 %ALLUSERSPROFILE% 일 것입니다.

이 폴더에는 모든 사용자에게 읽기/쓰기 권한이 있어야하며 모든 사용자에게 동일해야합니다.

는 기업/응용 프로그램 이름에 대한 하위 폴더를 생성하는 것을 잊지 마세요 :

string companyName = "My Company"; 
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
string path = Path.Combine(folderPath, companyName); 
0

어, "모든 사용자"와 "고도 없음"을 모두 가질 수 없습니다. 나는 정확히 System.AddIn 프레임 워크가 무엇인지 알지 못하지만 사용자 프로세스 (예 : 프로세스와 같은 시스템 서비스가 아님)에서 실행되도록 의도 된 경우 사용자 프로필 (ApplicationDataFolder는 훌륭한 장소) 아래에 작성해야합니다. . 이는 모든 애플리케이션이 준수해야하는 매우 기본적인 규칙입니다. 내 의견에 대한 제한된 이해를 바탕으로 System.AddIn 프레임 워크가 해당 규칙을 위반하는 것처럼 들립니다.

하지만 뭔가를 놓친 것 같습니다.

+0

나는 따라서, 우리는 같은 일을 놓치고 내 질문에 생각합니다. :) – GraemeF

1

더 나은 답변을 원하지만 응용 프로그램이 실행될 때마다 응용 프로그램 데이터에 파이프 라인을 설치하고 응용 프로그램 데이터에 복사하는 것이 유일한 방법이라고 생각합니다. 그런 다음 System.AddIn 프레임 워크가 Application Data의 파이프 라인 복사본을 가리 키도록하여 사용자 프로필에 쓰기 만 시도합니다.

+0

당신의 접근 방식이 옳다고 생각합니다. 기존 AddIns가 없으면 "기본"AddIns를 사용자 응용 프로그램 데이터에 복사하십시오. – VVS

0

WiX 설치 프로그램을 사용해야합니까? 앱을 클릭 솔루션으로 배포하면 모든 파이프 라인이 사용자 애플리케이션 데이터 폴더에 저장됩니다. 이렇게하면 각 사용자가 자신의 모듈 목록을 유지할 수 있습니다.

이렇게하면 쓰기 가능한 폴더 제한이 적용됩니다.

+0

각 사용자가 설치하는 경우 Windows Installer와 동일하지만 그게 내가 원하는 것은 아닙니다. – GraemeF

관련 문제