繁体   English   中英

在c#应用程序中的Installer类中无法打开文件对话框

[英]open file dialog not working from Installer class in c# application

我已经通过Visual Studio 2010安装和部署项目设计了项目MSi文件,在其中添加了一个自定义操作。 在自定义操作中,我将打开OpenFile对话框。 从应用程序内部运行正常。 但是从Installer挂出。

public override void Install(IDictionary stateSaver)
        {
            base.Install(stateSaver);
             OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = " Dialog";
             ....
             ....
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                tempPath = fdlg.SafeFileName;
                mappingPath = fdlg.FileName;
            }
    }

来自Soumitra Mondal的WebLog

FileDialog.ShowDialog需要STA线程 ,而MSI作为MTA线程运行。 为了实现此目的,您将需要启动STA后台线程并从该线程调用对话框

您需要更改您的通话

DialogResult ret = fdlg.ShowDialog();

DialogResult ret = STAShowDialog(fdlg);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM