【问题标题】:folder path input in installer c# visual studio 2010安装程序c#visual studio 2010中的文件夹路径输入
【发布时间】:2013-10-02 19:56:32
【问题描述】:

我需要的是用户不仅可以选择安装路径,还可以选择他们想要为我的程序放置配置文件的路径。

目前我在与实际程序相同的解决方案中有一个安装项目(该程序是 Outlook 2010 插件,但不认为这很重要)。我尝试使用类库处理自定义操作,但这似乎没有成功。我曾尝试使用不同的项目类型作为自定义操作的安装程序类,但它们都不起作用。我有一个带有按钮的 Windows 窗体,它应该打开一个 FolderBrowserDialog 并将用户选择的任何文件夹放入文本框中。但是每当我尝试做folderBrowserDialog.ShowDialog() 时,表格就会完全冻结。 FolderBrowserDialog 根本不会显示。

非常感谢任何帮助:)

问候

【问题讨论】:

  • 现在您正在从安装程序类打开那个窗口?但是你没有看到文件夹浏览对话框?
  • 它不仅不可见,还会阻止整个表单执行任何操作。它消失了(没有响应),几秒钟后就消失了。
  • 在应用部署期间有一个推荐的方式来获取用户输入,在这里查看我的帖子stackoverflow.com/questions/19087423/…
  • 这似乎很冒险,编辑标准安装程序文件。另外,这是否可以在没有编辑文件的 PC 上工作?

标签: c# visual-studio-2010 windows-installer folderbrowserdialog


【解决方案1】:

既然你说“任何帮助”将不胜感激:

您使用的工具太可怕了。微软将其从 VS2012 中删除,并且有 5K+ 的用户声音投票表示将其带回,因为它“工作得很好”。坦率地说,这代表了对 Windows Installer 几乎一无所知的 5K 开发人员。

该工具抽象和密封了如此多的 Windows Installer 技术,以至于除了许多其他事情之外,它未能以您需要的方式自定义安装用户界面序列的能力,否则可能。

因此,您不得不使用 InstallUtil 自定义操作在不应该显示 UI 的 InstallExecuteSequence 中显示 UI。这违反了 Windows Installer 设计的几个租户,如果这是您谈论的应用程序,您可能永远不会考虑这样做。

如果你想把它做好,你只有两个选择。 Postbuild 操作 MSI 以注入 Setup 和 Deployment 无法注入的内容(例如在构建的 DLL 中操作 IL,因为 C# 不支持 CLS 所做的事情)或切换到 Windows Installer XML 或 InstallShield Professional 等工具,在第一名。

我确信我现在会被那些 5K 开发人员中的一部分人否决,但我不在乎。我已经开发安装程序 17 年了,我是安装程序相关标签的主要贡献者,我知道我所说的不仅仅是意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多