2012-02-20 4 views
0

웹 사이트 용 웹 설치 프로그램을 만들려고하고 있는데, 설치 프로그램 클래스를 사용하여 사용자 정의 작업을하고 싶습니다. VS 2010을 사용하고 있으며 웹 사이트 및 설치 프로그램은 .NET 3.5입니다. 내가 Custom Actions 아래 Install 섹션의 설치 클래스 프로젝트 출력에 대한 참조를 추가 한웹 사이트의 웹 설정에서 설치 클래스를 사용하는 데 문제가 있습니다.

:
Custom Actions

는 또한이 작업에 대한 CustomActionData/targetdir="[TARGETDIR]/"을 설정했습니다.

InstallScript 프로젝트는 표준 클래스 라이브러리 (dll)입니다.
Installer 클래스에서 상속하는 공용 클래스가 있습니다. 내가 여러 온라인 예에서 수행 된 본대로 설치 방법 오버라이드 (override) : 내가 설치하는 동안 여기에 메시지 상자 솜 시간이 표시되어야 생각

using System.Collections; 
using System.Windows.Forms; 

namespace InstallScript 
{ 
    public class MyWebInstaller : System.Configuration.Install.Installer 
    { 
    public override void Install(IDictionary stateSaver) 
    { 
     base.Install(stateSaver); 
     var targetDir = Context.Parameters["targetdir"]; 
     if(targetDir==null) targetDir = "No TARGETDIR!"; 
     MessageBox.Show("TARGETDIR:\t" + targetDir); 
    } 
    } 
} 

을하지만,이 호출되지 않습니다처럼 보인다. 오류도 표시되지 않습니다. 설치 프로그램은이 코드가 호출되지 않은 것처럼 실행됩니다.

누구나 잘못된 점을 알고 있습니까?

답변

0

좋아요, 무엇이 빠졌는 지 알았습니다.

설치 프로그램이 픽업하여 실제로 코드를 실행하려면 클래스 속성이 RunInstaller(true) 인 클래스를 지정해야합니다.

[System.ComponentModel.RunInstaller(true)] 
public class MyWebInstaller : System.Configuration.Install.Installer 
{ 
    ... 
:

그래서 클래스는 다음과 같이 선언 될 필요가