2010-06-25 5 views
4

설치 프로그램 파일과 같은 디렉토리에있는 파일을 응용 프로그램 디렉토리에 복사하고 싶습니다. 설치 프로그램에 파일을 포함시킬 수 없습니다.설치 프로그램과 동일한 디렉토리에있는 파일을 복사하는 방법

시나리오 : 내 클라이언트 용 설치 관리자를 만듭니다. 클라이언트가 알 수없는 제 3 자에게 설치 프로그램을 배포하게되면 이러한 타사에서 응용 프로그램의 구성 측면을 변경해야합니다. 그런 다음 수정 된 구성으로 설치 프로그램을 알 수없는 최종 사용자에게 배포합니다. 최종 사용자는 설치 프로그램을 두 번 클릭 할 수 있어야하며, 해당 부분에 대한 지식이없는 것으로 가정 할 수 있습니다. 응용 프로그램을 배포 할 제 3 자마다 별도의 설치 프로그램을 만들 수는 없습니다.

제가 생각해 본 해결책은 이러한 타사가 설치 프로그램과 함께 배포 할 구성 파일을 추가하도록하는 것입니다. 이 파일은 설치시 응용 프로그램 디렉토리에 복사됩니다. 이 목적을 위해 맞춤 설치 프로그램 클래스를 만들었습니다.

내가 붙어있는 부분은 파일을 찾는 방법입니다. 설치 프로그램 클래스 내에서 활성 어셈블리 등을 찾기 위해 제공되는 모든 메소드는 설치 프로그램이 시작된 원래 디렉토리 대신 Window \ system32에있는 디렉토리를 가리키는 것처럼 보입니다.

도움을 주시면 감사하겠습니다.

+0

저는 이전에이 요구 사항을 가졌지 만 좋은 답변이 없습니다. 나는 무슨 일이 일어나는지 듣고 싶어 할 것이다. –

+0

렌치를 집어 넣으십시오. Windows Server 2008에서는 광범위한 로컬 권한이 있지만 네트워크 권한이없는 특별 계정으로 설치가 실행됩니다. 즉, 네트워크 공유에서 직접 설치할 수 없습니다. –

답변

2

너는이게 너니? Visual Studio에서 설치 프로젝트를 디자인 할 때 사용할 수있는 기본 제공 매개 변수 중 하나를 사용하여 사용자 지정 데이터를 사용자 지정 동작에 전달합니다.

http://adamhouldsworth.blogspot.com/2010/01/get-msi-location-during-setup.html

+0

이것이 정확히 내가 무엇을 찾고 있었는지 확인해 주셔서 감사합니다 – markchagers

+0

위의 링크로부터 혜택을 얻는 분들께서는 약간의 문제가 있습니다 : UNC 경로로 지정된 네트워크 위치에서 설치할 때 SourceDir 값에 백 슬래시가 하나만있는 것으로 나타났습니다. 시작 (예 : '\ ComputerName \ ShareName \ Folder \'처럼 보임)이므로 올바르게 해석되지 않습니다. 하나의 백 슬래시를 테스트해야하고 발견되면 문자열의 시작 부분에 다른 하나를 추가해야합니다. – sasfrog

관련 문제