2008-11-14 62 views
36

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

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

编辑:我看到使用维克斯是一种选择,但我觉得用大锤开裂核桃。这可能是唯一的解决方案,但我仍然希望简单。

回答

55

我们使用WIX来更改应用程序的配置文件。它工作得很好,你需要在引用中添加wixUtilExtension.dll。

维克斯样本:

<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

+0

谢谢。 WIX特性和复杂性仍然让我感到害怕。我有点走不了那么简单的路线:) – 2008-11-14 17:11:57

+13

只是为了完整;如果您在VS中执行此操作,则需要更改Fragment顶部的标记以包含属性:xmlns:util =“http://schemas.microsoft.com/wix/UtilExtension。您还需要添加对WixUtilExtension的引用 – 2012-10-15 09:58:56

1

我已经使用WIX工具集来生成msi。该工具允许您在安装过程中声明性地指定对诸如app.config之类的XML文件的更改。问题是,虽然有一个重要的学习曲线。搜索wix的sourceforge。

+0

我希望为中/小项目轻量级的解决方案... :) – 2008-11-14 11:37:59

1

我使用带有XML插件的NSIS来执行此操作。

3

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

相关问题