全部,我正在嘗試向我的VS2010 SetUp Project
添加一個Custom Action
。我想要做的是在安裝過程中顯示我的自定義雙贏形式。而且我想將自定義的雙贏形式顯示爲模式對話框,以便用戶在安裝過程中不能忽略它。到目前爲止,我繼承了我的安裝類System.windows.forms.IWin32Window
。但是我不知道如何實現get
成員接口的public IntPtr Handle
。在vs2010安裝項目中自定義安裝
我所做的是以下。請幫忙檢查一下。謝謝。
[RunInstaller(true)]
public partial class MyInstaller : System.Configuration.Install.Installer,IWin32Window
{
public MyInstaller()
{
InitializeComponent();
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
protected override void OnAfterInstall(IDictionary savedState)
{
base.OnAfterInstall(savedState);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
Form frm = new frmSelectSource();
frm.ShowDialog(this);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
protected override void OnCommitted(IDictionary savedState)
{
base.OnCommitted(savedState);
}
public IntPtr Handle
{
get { throw new NotImplementedException(); }
}
}
我不知道這是否是正確的做法。如果它是錯誤的或不可能做到的,請親切地告訴我。謝謝。
我完全同意你的看法,'Visual Studio安裝Project'有限制。現在我正在研究更強大的工具'InstallShield'。到目前爲止,我認爲這是我的正確選擇。謝謝。 –