exe 파일을 클릭하여 실행하면 완벽하게 실행되는 주요 업그레이드 (Installscript msi)를 만들었습니다.콘솔 응용 프로그램에서 InstallScript 프로젝트를 실행하는 방법
나는 같은 exe를 실행하지만 설치 후 이번에는 새로운 버전과 함께 이전 버전이 프로그램 추가/제거 목록에 표시되는 콘솔 응용 프로그램을 만들고 있습니다.
모든 구성 요소가 올바르게 설치하지만 콘솔 응용 프로그램에서 EXE 파일을 실행하는 경우에만
이유는 이전 버전까지 보여주고있다? 실제 설치는 콘솔 응용 프로그램을 다시 호출지고 다음 시작할 때 나는 EULA 등, 설치 프로그램이 열립니다 콘솔 응용 프로그램에서와 접수 후 EXE를 호출 할 때 내가 관찰 한
// Enter the executable to run, including the complete path
start.FileName = @"folder1\MyISProj.exe";
// Do you want to show a console window?
start.CreateNoWindow = true;
start.WindowStyle = ProcessWindowStyle.Minimized;
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
//proc.WaitForExit();
proc.Close();
}
한가지 더있다. 이 동작을 멈추기 위해 콘솔 응용 프로그램을 한 번만 실행하기 위해 Main 메서드에서 검사를 추가했습니다. 이제 설치 프로그램이 콘솔 응용 프로그램을 다시 실행하려고하면 프로세스가 이미 실행 중인지 여부를 확인합니다. 예이면 콘솔 응용 프로그램에서 반환됩니다.
Process[] result = Process.GetProcesses();
foreach (var item in result)
{
if (item.ProcessName.Contains("MyISProj"))
{
Console.WriteLine("There is already a instance running.");
System.Environment.Exit(0);
return;
}
}
하지만이 또한 추가/제거 프로그램 목록을 수행 한 후
두 가지 항목을 보여줍니다. 이 문제를 해결하기 위해해야 할 일은 무엇입니까? 나는이 문제에 붙어있다.저는 InstallShield 2011 Professional Edition을 사용하여 exe 파일을 만듭니다.
MsiGetProperty (ISMSI_HANDLE, "ISACTIONPROP1", szOldProductValue, nProSize); 기존의 기존 제품 코드를 반환합니다. 그것을 클릭하여 "exe"를 실행할 때 잘 작동하지만 콘솔 응용 프로그램에서 동일한 exe를 실행할 때 문제가 발생합니다. 내 것은 조용한 설치가 아닙니다. 코드에 표시된대로 exe를 호출하고 있습니다. msiexec을 사용할 수 없으므로 msi가 아닌 exe입니다. – PSR