2012-06-06 3 views
0

아주 간단해야하지만 이해가 안됩니다. 나는 (SQLite 파일과 함께) 수십 개의 이미지 파일을 패키지화하고 프로그램이 설치 될 때 사용자 컴퓨터에 복사하는 설치 프로젝트 (VS2010)를 가지고있다. 이것은 기본적으로 "재고"이미지이므로 사용자가 이미지를 삭제하면 프로그램에서 삭제할 수 있습니다. 그러나 이러한 이미지 중 하나 이상이 삭제 된 후 다음에 프로그램을 시작할 때 제공됩니다. "Windows installer"대화 상자를 열고 나머지 모든 데이터 파일을 삭제합니다!설치 파일이 삭제되면 VS 설치 프로젝트가 자동으로 삭제됩니다.

제가 생각하기에 프로그램은 누락 된 파일을보고 설치가 손상되었다고 가정하고 복구/제거 모드로 들어가려고합니다. 설치 프로젝트에서 파일을 설치할 필요가 있지만 언제든지 사용자가 제거 할 수 있음을 알려주는 방법을 알고 싶습니다.

나는 여러 가지 파일 속성 조합을 시도했으며 원하는 것은 무엇이든지하는 것으로 보인다. 설치자가 말하고 배치하지 말고 다시 생각할 필요가 없다. 나는 바퀴를 재발 명하고 커스텀 액션을 통해 이것을해야합니까 ??

편집 : Transitive와 Vital 모두 True로 설정되었습니다. False로 설정하면 프로그램이 다시 시작된 후에 삭제 된 이미지를 다시 추가합니다! 내가 답을 얻지 못하면 커스텀 액션으로 갈 것입니다.

답변

2

파일 연결 또는 보급 된 바로 가기를 사용하는 경우 Windows Installer에서 자동으로 component key paths이 누락되었는지 확인합니다. 키 경로를 찾을 수없는 경우 복구가 트리거되어 구성 요소를 다시 설치합니다.

대부분의 경우 설치 관리자 복구 프로세스가 다른 파일을 제거하는 작업을 수행합니다.

해결 방법은 Windows Installer에 구성 요소를 등록하지 않는 것입니다. 이 작업은 null 구성 요소 GUID를 사용하여 수행되며 Visual Studio 설치 프로젝트에서는 지원되지 않습니다. 그러나 대부분의 다른 설치 도구에서 지원됩니다.

다른 해결책은 이미지 파일이 해당 구성 요소의 주요 경로가 아닌지 확인하는 것입니다. 이것은 Visual Studio에서도 지원되지 않습니다.

더 많은 컨트롤을 제공하는 설치 저작 도구를 사용하려는 경우, 당신이 목록에서 좀 걸릴 수 있습니다 : 응답에 대한 http://en.wikipedia.org/wiki/List_of_installation_software

+0

감사합니다! 저는 Visual Studio 설치 프로젝트가 이상적이지 않으며 (심지어 VS2012에서도 지원되지 않을 것입니다),이 시점에서 최선을 다하고 있습니다. 필자의 필요에 가장 적합한 해킹은 설치 프로그램이 설치 디렉토리에 파일을 저장 한 다음 사용자 데이터 디렉토리에 사용자 지정 작업을 복사하여 Windows 설치 프로그램이 데이터의 내용을 알지 못하게하는 것입니다 국장님. 또 다시 귀하의 답변에 감사 드리며,이 답변을 잘받을 수 있을지 확신하지 못했습니다. –