Excel 추가 기능이 있습니다. C#, Add-In Express로 작성되었습니다. 설치 프로그램은 VS의 설치 프로젝트에서 빌드됩니다. 이제 더 큰 다른 추가 기능 응용 프로그램 (예 : )을 A의 설치 중에 제거 할 수있게하려고합니다. B는 C#으로도 작성되었지만 설치 프로그램은 고급 설치 프로그램에서 작성됩니다.프로그래밍 방식으로 응용 프로그램 제거
나는 아래와 같이 VBA를 시도했지만, AddIns는 "A XLL Add In"만 포함하고 "COM Add In"은 포함하지 않습니다. 그래서 그것은 작동하지 않습니다. 그래서 나는 A가 설치되어 있는지 감지하고 만약 그렇다면 그것을 제거하기 위해 exe를 쓰려고 생각하고있다. 그리고 B의 설치 프로그램에서 exe를 호출하십시오.
"C#에서 프로그램을 제거하는 방법"을 아는 사람이 있습니까? 또는 더 나은 해결책이 있습니까? 덕분에 일단 A를 감지하고 exe에서 제거하면 B의 설치 프로그램에서이 파일을 후크 할 수 있습니다. .NET의 설치 프로그램/제거 프로그램 클래스는 B 설치 프로그램에서 사용하지 않기 때문에 옵션이 아닙니다.
Dim item As AddIn
Set item = Application.AddIns("A COM Add In")
If Not item Is Nothing Then
item.Installed = False
'item = Nothing 'Not sure if this does anything
End If
Dim item As AddIn
Set item = Application.AddIns("A XLL Add In")
If Not item Is Nothing Then
item.Installed = False
'item = Nothing 'Not sure if this does anything
End If
고마워요. 미안하지만 분명하지 않습니다. 이미 설치 프로그램 B를 만들었고 정상적으로 작동합니다. 내 질문은 C에서 프로그램을 제거하는 방법입니다 #? 해결되면 B의 설치 프로그램에서 exe를 연결할 수 있습니다. – toosensitive
ok - 다른 msi가 이미 실행되는 동안 실행하지 않으려면 Process.Start() 호출이 가장 좋습니다. msiexec.exe – dice
감사합니다 @dice. 예, msiexec.exe @ http://social.msdn.microsoft.com/forums/en-us/netfxbcl/thread/CA866421-1D38-459E-822F-622E57046A04를 사용하여 제거 할 샘플 코드를 발견했습니다. 그것은 작동합니다. 감사! – toosensitive