【问题标题】:How to modify .NET config files during installation?如何在安装过程中修改 .NET 配置文件?
【发布时间】:2010-09-22 07:57:30
【问题描述】:

我使用 app.config 文件来存储一些值(映射数据库的路径、数据连接选择)。这些设置在用户机器上有所不同,我希望安装程序正确设置它们。是否有安装程序可以在安装过程中使用 .NET 配置文件并允许我创建一些对话框来帮助我填写这些值?

我知道这个问题可能类似于:Initializing user.config or app.exe.config during install,但我不限于 VS 2008 安装项目,我想更改配置文件中的设置。

编辑:我看到使用 WIX 是一种选择,但我觉得用大锤敲碎核桃。这可能是唯一的解决方案,但我仍然希望有一些简单的方法。

【问题讨论】:

    标签: .net configuration installation


    【解决方案1】:

    我们使用 WIX 来更改应用程序的配置文件。它真的很好用,您需要在参考中添加 wixUtilExtension.dll。

    WIX 样本:

    <Component Id="ChangeConfig" Guid="[YOUR_GUID_HERE]">
       <File Id="App.config" Name="MyApplication.exe.config" Vital="yes" KeyPath="yes" Source="[Path to project dir]\app.config" />
       <util:XmlFile Id="AppConfigSetConnStr" Action="setValue" Permanent="yes" File="[#App.config]"            
            ElementPath="/configuration/connectionStrings/add[\[]@name='MyDatabaseName'[\]]" Name="connectionString" 
            Value="Your Connection string values here" />
    
    </Component>
    

    这实际上取决于您使用什么来创建安装程序,您使用的是什么?
    看看WIX Tutorial

    【讨论】:

    • 谢谢。我仍然对 WIX 的功能和复杂性感到畏惧。为了这么简单的事情,我有点害怕走那条路:)
    • 只是为了完整性;如果您在 VS 中执行此操作,则需要更改 Fragment 顶部的 标记以包含属性:xmlns:util="schemas.microsoft.com/wix/UtilExtension。您还需要添加对 WixUtilExtension 的引用。跨度>
    • 这就是我的意思,在引用中添加对 wixUtilExtension.dll 的引用。是的,你必须按照你提到的去做。
    • 您能否这样做,以便从以前版本的 app.config 中提取旧值并将其合并到新的 app.config 中?基本上想象一个用户安装版本 1。手动更改一些 appSettings。在第 2 版升级时,我们希望保留对 appSettings 的任何更改,但覆盖其他所有内容。
    【解决方案2】:

    如果您使用的是 VS 设置项目,您是否创建了自定义操作?我已经将它们用于从戳 XML 值到部署数据库的所有事情。

    【讨论】:

    • VS Setup 项目不是我推荐的。它们已经复苏,但在 CI 场景中仍然不受支持,并且基于 VS2005 时代的技术,并且从未使用适当的 MsBuild 支持进行更新。
    • @jessehouwing 考虑到这个答案已有 7.5 年的历史,技术已经发生了很大变化。
    【解决方案3】:

    我已经使用 WIX 工具集生成了一个 msi。该工具允许您在安装期间以声明方式指定对 XML 文件(如 app.config)的更改。问题是尽管有一个显着的学习曲线。在 sourceforge 中搜索 wix。

    【讨论】:

    • 我希望为中/小型项目提供更轻的解决方案...... :)
    【解决方案4】:

    我使用 NSIS 和一个 XML 插件来做到这一点。

    【讨论】:

      【解决方案5】:

      我知道这是一个老问题,但我们也不想将 WIX 用于一个非常简单的小安装程序。我发现这篇文章详细解释了如何做到这一点。它对我们来说非常有效。

      http://www.c-sharpcorner.com/UploadFile/ddoedens/CustomUI11102005042556AM/CustomUI.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多