VS2015에서 소프트웨어를위한 msi 프로젝트를 만들었습니다. 나는 넷 기반 데스크탑 응용 프로그램을 만들었습니다. 내 요구 사항은 2 가지 경우를 다루고 싶습니다. -msi 파일에 새 버전을 설치하는 동안 자동으로 제거하는 방법
1- 소프트웨어가 이미 설치되어 있고 사용자가 설치하려고하면 자동으로 기존 소프트웨어를 제거하고 데이터베이스 파일 (my 신청).
2- 설치된 버전이 낮 으면 응용 프로그램을 제거하고 데이터베이스 파일을 그대로 두어야합니다.
내 설치 프로젝트에서 설치 및 제거를위한 사용자 지정 작업을 추가했습니다. 여기서 내 dll 경로를 지정하고 Installer 클래스 속성을 true로 설정했습니다. 이 DLL에서 나는 System.Configuration.Install.Installer에서 상속하는 클래스를 만들었하고 아래와 같이 제거, beforeInstall을 설치 핸들 : - 지금 제거에
public partial class SetupManager : System.Configuration.Install.Installer
{
public SetupManager()
{
InitializeComponent();
this.BeforeInstall += SetupManager_BeforeInstall;
//this.Committed += new InstallEventHandler(DarkMailInstaller_Committed);
}
private void SetupManager_BeforeInstall(object sender, InstallEventArgs e)
{
MessageBox.Show("In Install event");
}
}
, 내가 DB를 삭제합니다. 제어판에서 설치를 제거하고 내 DB 파일도 제거하면 제대로 작동합니다.
하지만 재정의 기능을 사용하기 전에 제품을 업그레이드하고 싶습니다. 설치 또는 BeforeInstall과 마찬가지로 "이 제품의 다른 버전이 이미 설치되어 있습니다.이 버전의 설치를 계속할 수 없습니다. 구성하거나 제거하려면 제품의 기존 버전, 제어판의 프로그램 추가/제거 "를 사용하십시오.
이제 인터넷에서 검색 한 결과 패키지 코드 또는 제품 버전을 업데이트하면 설치가 가능해 보입니다. 이제 다음과 같은 문제가 있습니다 : -
1- VS 2015에서 설치 프로젝트에서 제품 버전 또는 패키지 코드를 설정할 수있는 속성이 없습니다.
2 나는 Orca를 사용하여 편집하려고했지만 편집 된 MSI 파일 (업데이트 된 버전 번호, 패키지 코드 및 제품 코드 포함)을 설치하려고해도 동일한 오류가 발생합니다.
3 설치 전 이벤트를 실행하기 전에 왜이 오류가 발생하는지 알지 못합니다.
4 "RemoveExistingProducts"가이 경우 도움이 될 것으로 나타났습니다. 하지만 VS2015에서이 속성/동작을 찾을 수 없습니다. 어디에서 찾을 수 있습니까?
일부 문제는이 문제를 해결할 수 있습니까? 비주얼 스튜디오 설치 프로젝트에서
답변 해 주셔서 감사합니다. 그것은 나를 위해 작동합니다. 충분한 자격 증명이 없지만 +1은 분명합니다. – bulunga